Android Material Design Android官方控件学习
AppBarLayout
- AppBarLayout从本质上就是一个垂直的LinearLayout
- 添加了一些材料设计的概念和特性,即滑动手势
- 当某个可滑动的View(NestedScrollView)滑动手势改变时,作为AppbarLayout的子View可以通过app:layout_scrollFlags来定制的动作,
- 严重依赖于协调手势布局CoordinatorLayout
- 还需要一个可以独立滚动的兄弟节点(CoordinatorLayout 的子view(或间接子view)),如:NestedScrollView,recycleview
- AppBarLayout一般作为toolbar或者CollapsingToolbarLayout父布局.
MaterialDesignWidget/AppBarLayoutActivity简单展示AppBarLayout的用法,
- AppBarLayout替代LinearLayout成为Toolbar和TabLayout的父布局,
- NestedScrollView增加app:layout_behavior,自动适应AppBarLayout高度,并且有层叠的阴影效果
- AppBarLayout、NestedScrollView作为CoordinatorLayout的子布局,轻松地实现了在TabLayoutActivity的布局效果
- 当然这三者的作用远不止如此
app:layout_scrollFlags
可选的五个属性
- scroll
- enterAlways,
- enterAlwaysCollapsed,
- exitUntilCollapsed,
- snap
一般使用的组合有五种
- scroll、
- scroll|enterAlways、
- scroll|enterAlways|enterAlwaysCollapsed、
- scroll|exitUntilCollapsed、
- scroll|snap
实例证明运用于单个子view,效果跟预期一样,多个子view同时定义app:layout_scrollFlags,效果可能不是预期,需要实际测试效果.
可以得到,layout_scrollFlags 主要是 为了与collapsingToolbarLayout配合使用的.尤其是scroll|exitUntilCollapsed 这个组合,可能有用的scroll|exitUntilCollapsed|snap