协调者布局的诞生:
Android在推出5.0版本后推出了材料设置概念,并推出了design兼容包,而我们本章所需要说的协调者布局(CoordinatorLayout)就在这design兼容包之中。所以说,我们想要使用协调者布局就需要去导入design包(compile 'com.android.support:design:25.1.1')
协调者布局的简介:
协调者布局(CoordinatorLayout,以下简称CL)继承自viewGroup,它的父类就是viewGroup,所以CL是作为容器来使用,它是一个非常高级的App装饰布局,我们在使用的过程中通常是做为顶级ViewGroup来使用的.
CL的使用:
CL把整个页面分成了两部分,上半部分固定设置为AppBarLayout布局,上半部分的作用就是可以进行折叠;下半部分可以为两种布局 RecyclerView 和NestedScrollView 的其中一种,下半部分的作用是可以进行滑动,对上部分进行折叠操作
CL常用的属性:
app:collapsedTitleGravity="right" :折叠后title位于Toolbar的位置
app:contentScrim="@color/colorPrimary": 折叠后Toolbar显示的颜色
app:expandedTitleGravity="center" : 展开后title以为整个上半部分的位置
app:title="coordinatorlayout" :显示的文字,可以跟着滑动来改变size
CL重要的属性就是 : app:layout_scrollFlags :设置上半部分滑动的方式
这个属性的取值方式有五种:
1.scroll 表示CollapsingToolbarLayout可以滚动(不设置的话头部的ImageView将不能折叠)
2.enterAlways 表示底部的滚动控件只要向下滚动,头部就显示出来
3.enterAlwaysCollapsed 表示当底部滚动控件滚动见顶时,头部显示出来
4.exitUntilCollapsed 表示头部折叠到最小高度时(Toolbar的高度),就不再折叠
5.snap 表示在滑动过程中如果停止滑动,则头部会就近折叠(要么恢复原状,要么折叠成一个Toolbar)
要想真正实现上半部分跟随着下半部分的滑动而产生相应的动作的话,必须在下半部分的控件中需要设置app:layout_behavior 属性
由于app:layout_behavior 属性也是有许多的坑,所以只要记住在CL布局中的下半部分的控件当中设置该属性即可:
app:layout_behavior="@string/appbar_scrolling_view_behavior"