Material Design控件之AppBarLayout

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

github 源碼地址:https://github.com/LinweiJ/MaterialDesignWidget

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章