CoordinatorLayout示例

CoordinatorLayout

coordinatorLayout (協(xié)調(diào)布局)其實(shí)就是將其下的所有子View都抽象成: 互相依賴(depends)的關(guān)系. 因此某個(gè)view可以基于另一個(gè)view來定位,

這樣抽象的好處更強(qiáng)大的地方在于:

每一個(gè)view的所有屬性, 坐標(biāo), 樣式, 狀態(tài)等一切都可以依賴于另一個(gè)view, 因此使得parentView和所有childView之間都可以互相聯(lián)動(dòng)起來.
想象一下, 不僅僅是定位, 所有可以設(shè)置在View上面的屬性都可以依賴于另一個(gè)view的變化而變化, 某一個(gè)View可以跟隨另一個(gè)View一起滾動(dòng), 某一個(gè)View可以跟隨另一個(gè)View的狀態(tài)改變而改變, 性能非常的強(qiáng)大;

CoordinatorLayout的Behavior

Behavior是Android新出的Design庫(kù)里新增的布局概念。Behavior只有是CoordinatorLayout的直接子View才有意義??梢詾槿魏蜼iew添加一個(gè)Behavior。

Behavior是一系列回調(diào)。讓你有機(jī)會(huì)以非侵入的為View添加動(dòng)態(tài)的依賴布局,和處理父布局(CoordinatorLayout)滑動(dòng)手勢(shì)的機(jī)會(huì)。

不過官方只有少數(shù)幾個(gè)Behavior的例子。并且實(shí)現(xiàn)類也很少;默認(rèn)也只有幾種實(shí)現(xiàn),有的復(fù)雜的需求就需要自己去實(shí)現(xiàn)自定義的Behavior

先說一下這個(gè)屬性 app:layout_scrollFlags

1) scroll:值設(shè)為scroll的View會(huì)跟隨滾動(dòng)事件一起發(fā)生移動(dòng)。

2) enterAlways:值設(shè)為enterAlways的View,當(dāng)ScrollView往下滾動(dòng)時(shí),該View會(huì)直接往下滾動(dòng)。而不用考慮ScrollView是否在滾動(dòng)。

3) exitUntilCollapsed:值設(shè)為exitUntilCollapsed的View,當(dāng)這個(gè)View要往上逐漸“消逝”時(shí),會(huì)一直往上滑動(dòng),直到剩下的的高度達(dá)到它的最小高度后,再響應(yīng)ScrollView的內(nèi)部滑動(dòng)事件。

4) enterAlwaysCollapsed:是enterAlways的附加選項(xiàng),一般跟enterAlways一起使用,它是指,View在往下“出現(xiàn)”的時(shí)候,首先是enterAlways效果,當(dāng)View的高度達(dá)到最小高度時(shí),View就暫時(shí)不去往下滾動(dòng),直到ScrollView滑動(dòng)到頂部不再滑動(dòng)時(shí),View再繼續(xù)往下滑動(dòng),直到滑到View的頂部結(jié)束。

例子

下面就用協(xié)調(diào)布局寫幾個(gè)常用的例子;

效果1:toolbar隨子view的滾動(dòng)顯示和隱藏
如下圖:

ee.gif

效果2:結(jié)合CollapsingToolbarLayout縮放圖片和toolBar

如下圖:


bb.gif

效果3:類似知乎首頁(yè)滑動(dòng)顯示和影藏的效果;
如下圖:


cc.gif

效果4:viewpager+fragment,滑動(dòng)漸變改變indicator;
如下圖:

dd.gif

放一下github地址,喜歡麻煩給個(gè)star了
github地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容