CoordinatorLayout示例

CoordinatorLayout

coordinatorLayout (協調佈局)其實就是將其下的所有子View都抽象成: 互相依賴(depends)的關係. 因此某個view可以基於另一個view來定位,

這樣抽象的好處更強大的地方在於:

每一個view的所有屬性, 座標, 樣式, 狀態等一切都可以依賴於另一個view, 因此使得parentView和所有childView之間都可以互相聯動起來.
想象一下, 不僅僅是定位, 所有可以設置在View上面的屬性都可以依賴於另一個view的變化而變化, 某一個View可以跟隨另一個View一起滾動, 某一個View可以跟隨另一個View的狀態改變而改變, 性能非常的強大;

CoordinatorLayout的Behavior

Behavior是Android新出的Design庫裏新增的佈局概念。Behavior只有是CoordinatorLayout的直接子View纔有意義。可以爲任何View添加一個Behavior。

Behavior是一系列回調。讓你有機會以非侵入的爲View添加動態的依賴佈局,和處理父佈局(CoordinatorLayout)滑動手勢的機會。

不過官方只有少數幾個Behavior的例子。並且實現類也很少;默認也只有幾種實現,有的複雜的需求就需要自己去實現自定義的Behavior

先說一下這個屬性 app:layout_scrollFlags

1) scroll:值設爲scroll的View會跟隨滾動事件一起發生移動。

2) enterAlways:值設爲enterAlways的View,當ScrollView往下滾動時,該View會直接往下滾動。而不用考慮ScrollView是否在滾動。

3) exitUntilCollapsed:值設爲exitUntilCollapsed的View,當這個View要往上逐漸“消逝”時,會一直往上滑動,直到剩下的的高度達到它的最小高度後,再響應ScrollView的內部滑動事件。

4) enterAlwaysCollapsed:是enterAlways的附加選項,一般跟enterAlways一起使用,它是指,View在往下“出現”的時候,首先是enterAlways效果,當View的高度達到最小高度時,View就暫時不去往下滾動,直到ScrollView滑動到頂部不再滑動時,View再繼續往下滑動,直到滑到View的頂部結束。

例子

下面就用協調佈局寫幾個常用的例子;

效果1:toolbar隨子view的滾動顯示和隱藏
如下圖:

ee.gif

效果2:結合CollapsingToolbarLayout縮放圖片和toolBar

如下圖:


bb.gif

效果3:類似知乎首頁滑動顯示和影藏的效果;
如下圖:


cc.gif

效果4:viewpager+fragment,滑動漸變改變indicator;
如下圖:

dd.gif

放一下github地址,喜歡麻煩給個star了
github地址

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