CoordinatorLayout


public class CoordinatorLayout extends ViewGroup implements NestedScrollingParent2, NestedScrollingParent3


CoordinatorLayout is a super-powered FrameLayout.

CoordinatorLayout is intended for two primary use cases:

  1. As a top-level application decor or chrome layout
  2. As a container for a specific interaction with one or more child views

By specifying Behaviors for child views of a CoordinatorLayout you can provide many different interactions within a single parent and those views can also interact with one another. View classes can specify a default behavior when used as a child of a CoordinatorLayout by implementing the AttachedBehavior interface.

Behaviors may be used to implement a variety of interactions and additional layout modifications ranging from sliding drawers and panels to swipe-dismissable elements and buttons that stick to other elements as they move and animate.

Children of a CoordinatorLayout may have an anchor. This view id must correspond to an arbitrary descendant of the CoordinatorLayout, but it may not be the anchored child itself or a descendant of the anchored child. This can be used to place floating views relative to other arbitrary content panes.

Children can specify insetEdge to describe how the view insets the CoordinatorLayout. Any child views which are set to dodge the same inset edges by dodgeInsetEdges will be moved appropriately so that the views do not overlap.

Summary

Nested types

Defines the default attached Behavior of a View class

public abstract class CoordinatorLayout.Behavior<V extends View>

Interaction behavior plugin for child views of CoordinatorLayout.

@Retention(value = RetentionPolicy.RUNTIME)
public annotation CoordinatorLayout.DefaultBehavior

This annotation is deprecated.

Use AttachedBehavior instead

Parameters describing the desired layout for a child of a CoordinatorLayout.

Public constructors

CoordinatorLayout(
    @NonNull Context context,
    @Nullable AttributeSet attrs,
    @AttrRes int defStyleAttr
)

Public methods

void

Allows the caller to manually dispatch onDependentViewChanged to the associated Behavior instances of views which depend on the provided View.

boolean
boolean
doViewsOverlap(@NonNull View first, @NonNull View second)

Check whether two views overlap each other.

CoordinatorLayout.LayoutParams
@NonNull List<View>

Returns a new list containing the views on which the provided view depends.

@NonNull List<View>

Returns a new list of views which depend on the provided view.

int
@Nullable Drawable

Gets the drawable used to draw in the insets area for the status bar.

boolean
isPointInChildBounds(@NonNull View child, int x, int y)

Check if a given point in the CoordinatorLayout's coordinates are within the view bounds of the given direct child view.

void
void
void
boolean
void
onLayoutChild(@NonNull View child, int layoutDirection)

Called to lay out each individual child view unless a Behavior is present.

void
onMeasureChild(
    @NonNull View child,
    int parentWidthMeasureSpec,
    int widthUsed,
    int parentHeightMeasureSpec,
    int heightUsed
)

Called to measure each individual child view unless a Behavior is present.

boolean
onNestedFling(
    View target,
    float velocityX,
    float velocityY,
    boolean consumed
)
boolean
onNestedPreFling(View target, float velocityX, float velocityY)
void
onNestedPreScroll(
    @NonNull View target,
    int dx,
    int dy,
    @NonNull int[] consumed
)
void
onNestedPreScroll(
    @NonNull View target,
    int dx,
    int dy,
    @NonNull int[] consumed,
    int type
)

React to a nested scroll in progress before the target view consumes a portion of the scroll.

void
onNestedScroll(
    @NonNull View target,
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed
)
void
onNestedScroll(
    @NonNull View target,
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    int type
)

React to a nested scroll in progress.

void
onNestedScroll(
    @NonNull View target,
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    int type,
    @NonNull int[] consumed
)

React to a nested scroll in progress.

void
onNestedScrollAccepted(@NonNull View child, @NonNull View target, int axes)
void
onNestedScrollAccepted(
    @NonNull View child,
    @NonNull View target,
    int axes,
    int type
)

React to the successful claiming of a nested scroll operation.

boolean
onStartNestedScroll(@NonNull View child, @NonNull View target, int axes)
boolean
onStartNestedScroll(
    @NonNull View child,
    @NonNull View target,
    int axes,
    int type
)

React to a descendant view initiating a nestable scroll operation, claiming the nested scroll operation if appropriate.

void
void
onStopNestedScroll(@NonNull View target, int type)

React to a nested scroll operation ending.

boolean
boolean
requestChildRectangleOnScreen(
    View child,
    Rect rectangle,
    boolean immediate
)
void
requestDisallowInterceptTouchEvent(boolean disallowIntercept)
void
setFitsSystemWindows(boolean fitSystemWindows)
void
void

Set a drawable to draw in the insets area for the status bar.

void

Set a drawable to draw in the insets area for the status bar.

void

Set a drawable to draw in the insets area for the status bar.

void
setVisibility(int visibility)

Protected methods

boolean
boolean
drawChild(Canvas canvas, View child, long drawingTime)
void
CoordinatorLayout.LayoutParams
CoordinatorLayout.LayoutParams
int
int
void
onLayout(boolean changed, int l, int t, int r, int b)
void
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
void
@NonNull Parcelable
boolean

Inherited Constants

From android.view.View
static final int
static final int
static final int
static final int
static final int
static final int
static final Property<ViewFloat>
static final int
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE = "creditCardExpirationDate"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY = "creditCardExpirationDay"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH = "creditCardExpirationMonth"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR = "creditCardExpirationYear"
static final String
static final String
AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE = "creditCardSecurityCode"
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final int
static final int
static final int
GONE = 8
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
KEEP_SCREEN_ON = 67108864
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
NO_ID = -1
static final int
static final int
static final int
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final float
static final float
static final float
static final float
static final float
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final String
VIEW_LOG_TAG = "View"
static final int
static final int[]
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
From android.view.ViewGroup
static final int
static final int
static final int
static final int
static final int
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.