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