added in version 24.1.0
belongs to Maven artifact


public class CoordinatorLayout
extends ViewGroup implements NestedScrollingParent2

   ↳ android.view.View
     ↳ android.view.ViewGroup

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 using the CoordinatorLayout.DefaultBehavior annotation.

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.


Nested classes

interface CoordinatorLayout.AttachedBehavior

Defines the default attached CoordinatorLayout.Behavior of a View class

When writing a custom view, implement this interface to return the default behavior when used as a direct child of an CoordinatorLayout

class CoordinatorLayout.Behavior<V extends View>

Interaction behavior plugin for child views of CoordinatorLayout

@interface CoordinatorLayout.DefaultBehavior

This @interface was deprecated in API level 27.1.0. Use CoordinatorLayout.AttachedBehavior instead  

class CoordinatorLayout.LayoutParams

Parameters describing the desired layout for a child of a CoordinatorLayout

class CoordinatorLayout.SavedState


Inherited constants

From class android.view.ViewGroup
From class android.view.View