CoordinatorLayout
open class CoordinatorLayout : ViewGroup, NestedScrollingParent2, NestedScrollingParent3
kotlin.Any | |||
↳ | android.view.View | ||
↳ | android.view.ViewGroup | ||
↳ | androidx.coordinatorlayout.widget.CoordinatorLayout |
CoordinatorLayout is a super-powered FrameLayout
.
CoordinatorLayout is intended for two primary use cases:
- As a top-level application decor or chrome layout
- 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 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 LayoutParams#insetEdge
to describe how the view insets the CoordinatorLayout. Any child views which are set to dodge the same inset edges by LayoutParams#dodgeInsetEdges
will be moved appropriately so that the views do not overlap.
Summary
Nested classes | |
---|---|
abstract | |
abstract |
Interaction behavior plugin for child views of |
open |
Parameters describing the desired layout for a child of a |
open |
Public constructors | |
---|---|
<init>(@NonNull context: Context, @Nullable attrs: AttributeSet?) |
|
<init>(@NonNull context: Context, @Nullable attrs: AttributeSet?, @AttrRes defStyleAttr: Int) |
Public methods | |
---|---|
open Unit |
dispatchDependentViewsChanged(@NonNull view: View) Allows the caller to manually dispatch |
open Boolean |
doViewsOverlap(@NonNull first: View, @NonNull second: View) Check whether two views overlap each other. |
open CoordinatorLayout.LayoutParams! |
generateLayoutParams(attrs: AttributeSet!) |
open MutableList<View!> |
getDependencies(@NonNull child: View) Returns the list of views which the provided view depends on. |
open MutableList<View!> |
getDependents(@NonNull child: View) Returns the list of views which depend on the provided view. |
open Int | |
open Drawable? |
Gets the drawable used to draw in the insets area for the status bar. |
open Boolean |
isPointInChildBounds(@NonNull child: View, x: Int, y: Int) Check if a given point in the CoordinatorLayout's coordinates are within the view bounds of the given direct child view. |
open Unit | |
open Unit | |
open Unit | |
open Boolean | |
open Unit |
onLayoutChild(@NonNull child: View, layoutDirection: Int) Called to lay out each individual child view unless a |
open Unit |
onMeasureChild(child: View!, |