CoordinatorLayout作为“super-powered FrameLayout”基本实现两个功能: 
1、作为顶层布局 
2、调度协调子布局



CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果。CoordinatorLayout使用的时候通常和
AppBarLayout搭配使用。



  1. scroll: 所有想滚动出屏幕的view都需要设置这个flag,没有设置这个flag的view将被固定在屏幕顶部。例如,TabLayout 没有设置这个值,将会停留在屏幕顶部。
  2. enterAlways: 设置这个flag时,向下的滚动都会导致该view变为可见,启用快速“返回模式”。
  3. enterAlwaysCollapsed: 这个flag定义的是何时进入(已经消失之后何时再次显示)。当你的视图已经设置minHeight属性又使用此标志时,你的视图只能在到达这个最小高度的时候开始显示,只有当滚动视图到达顶部时才扩大到完整高度。
  4. exitUntilCollapsed: 当你定义了一个minHeight,这个view将在滚动到达这个最小高度的时候消失。



系统(Support V7)提供了AppBarLayout.Behavior、 AppBarLayout.ScrollingViewBehavior,、FloatingActionButton.Behavior和SwipeDismissBehavior<V extends View> 等。

使用CoordinatorLayout需要在Gradle加入Support Design Library,例如:

compile 'com.android.support:design:22.2.1'
实现了多种Material Design中提到的滚动效果。目前这个框架提供了几种不用写动画代码就能工作的方法,这些效果包括:

一、CoordinatorLayout与FloatingActionButton让浮动操作按钮上下滑动,为Snackbar留出空间

FloatingActionButton是最简单的使用CoordinatorLayout的例子,FloatingActionButton默认使用FloatingActionButton.Behavior。
CoordinatorLayout可以用来配合浮动操作按钮的 layout_anchor 和 layout_gravity属性创造出浮动效果。


MainActivity.java如下:




publicbooleanlayoutDependsOn(CoordinatorLayout parent, View child, View dependency) 
publicbooleanonDependentViewChanged(CoordinatorLayout parent, View child, View dependency)



CustomBehavior
CustomBehavior