Coordinatorlayout使用

Coordinaorlayout --協(xié)調者布局,適用于打造折疊懸浮效果。

1.簡介

CoordinatorLayout遵循Material 風格,包含在 support Library中,結合AppbarLayout, CollapsingToolbarLayout等可產生各種炫酷的折疊懸浮效果。

作為最上層的View

作為一個容器與一個或者多個子View進行交互

2.AppBarLayout

它是繼承與LinearLayout的,默認的方向是Vertical

我們可以通過兩種?方法設置這個Flag

方法一

setScrollFlags(int)

方法二

app:layout_scrollFlags="scroll|enterAlways"

AppBarLayout必須作為CoordinatorLayout的直接子View,否則它的大部分功能將不會生效,如layout_scrollFlags等。

3.CollapsingToolbarLayout

簡單來說?,CollapsingToolbarLayout是工具欄的包裝器,它通常作為AppBarLayout的孩子。主要實現(xiàn)以下功能?

- Collapsing title(可以折疊 的 標題 )?

- Content scrim(內容裝飾),當我們滑動的位置 到達一定閾值的時候,內容裝飾將會被顯示或者隱藏?

- Status bar scrim(狀態(tài)欄布)?

- Parallax scrolling children,滑動的時候孩子呈現(xiàn)視覺特差效果?

- Pinned position children,固定位置的孩子

我們有兩種方法可以設置這個常量,

方法一:在代碼中使用這個方法

setCollapseMode(int collapseMode)

方法二:在布局文件中使用自定義屬性

app:layout_collapseMode="pin"

4. 自定義 Behavior

自定義 Behavior 需要繼承自 CoodinatorLayout.Behavior

(1) 事件攔截

onInterceptTouchEvent

onTouchEvent

觸摸事件總是先交給 CoodinatorLayout,它會詢問所有子 View 的 Behavior 是否需要攔截事件。

直接拖拽 AppBarLayout 也可以滾動,這是因為 AppBarLayout.Behavior 的父類 HeaderBehavior 實現(xiàn)了這兩個方法。

(2) 嵌套滾動

onNestedPreScroll

onNestedPreFling

(3) child 和 dependency

layoutDependsOn:決定 child 依賴誰(dependency)。

onDependentViewChanged:dependency 的大小或位置發(fā)生了變化。

onDependentViewRemoved:dependency 從父布局中被移除了。

描述了兩個(或多個)View 之間的依賴關系,表現(xiàn)為一個或多個 child 依賴 dependency。當 dependency 的大小或位置發(fā)生了改變,child 可以做出一些你需要的響應(改變位置、大小等)。

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容