CoordinatorLayout.Behavior

public static abstract class CoordinatorLayout.Behavior
extends Object

java.lang.Object
   ↳ androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior<V extends android.view.View>


Interaction behavior plugin for child views of CoordinatorLayout.

A Behavior implements one or more interactions that a user can take on a child view. These interactions may include drags, swipes, flings, or any other gestures.

Summary

Public constructors

Behavior()

Default constructor for instantiating Behaviors.

Behavior(Context context, AttributeSet attrs)

Default constructor for inflating Behaviors from layout.

Public methods

boolean blocksInteractionBelow(CoordinatorLayout parent, V child)

Determine whether interaction with views behind the given child in the child order should be blocked.

boolean getInsetDodgeRect(CoordinatorLayout parent, V child, Rect rect)

Called when a view is set to dodge view insets.

int getScrimColor(CoordinatorLayout parent, V child)

Supply a scrim color that will be painted behind the associated child view.

float getScrimOpacity(CoordinatorLayout parent, V child)

Determine the current opacity of the scrim behind a given child view

A scrim may be used to indicate that the other elements beneath it are not currently interactive or actionable, drawing user focus and attention to the views above the scrim.

static Object getTag(View child)

Get the behavior-specific tag object with the given child view.

boolean layoutDependsOn(CoordinatorLayout parent, V child, View dependency)

Determine whether the supplied child view has another specific sibling view as a layout dependency.

WindowInsetsCompat onApplyWindowInsets(CoordinatorLayout coordinatorLayout, V child, WindowInsetsCompat insets)

Called when the window insets have changed.

void onAttachedToLayoutParams(CoordinatorLayout.LayoutParams params)

Called when the Behavior has been attached to a LayoutParams instance.

boolean onDependentViewChanged(CoordinatorLayout parent, V child, View dependency)

Respond to a change in a child's dependent view

This method is called whenever a dependent view changes in size or position outside of the standard layout flow.

void onDependentViewRemoved(CoordinatorLayout parent, V child, View dependency)

Respond to a child's dependent view being removed.

void onDetachedFromLayoutParams()

Called when the Behavior has been detached from its holding LayoutParams instance.

boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent ev)

Respond to CoordinatorLayout touch events before they are dispatched to child views.

boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection)

Called when the parent CoordinatorLayout is about the lay out the given child view.

boolean onMeasureChild(CoordinatorLayout parent, V child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed)

Called when the parent CoordinatorLayout is about to measure the given child view.

boolean onNestedFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY, boolean consumed)

Called when a nested scrolling child is starting a fling or an action that would be a fling.

boolean onNestedPreFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY)

Called when a nested scrolling child is about to start a fling.

void onNestedPreScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy, int[] consumed, int type)

Called when a nested scroll in progress is about to update, before the target has consumed any of the scrolled distance.

void onNestedPreScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy, int[] consumed)

This method is deprecated. You should now override onNestedPreScroll(CoordinatorLayout, View, View, int, int, int[], int). This method will still continue to be called if the type is ViewCompat.TYPE_TOUCH.

void onNestedScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type)

This method is deprecated. You should now override onNestedScroll(CoordinatorLayout, View, View, int, int, int, int, int, int[]). This method will still continue to be called if onNestedScroll(CoordinatorLayout, View, View, int, int, int, int, int, int[]) is not overridden.

void onNestedScroll(CoordinatorLayout coordinatorLayout, V child,