Coordinatorlayout使用

Coordinaorlayout --协调者布局,适用于打造折叠悬浮效果。

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的孩子。主要实现以下功能 

- Collapsing title(可以折叠 的 标题 ) 

- Content scrim(内容装饰),当我们滑动的位置 到达一定阈值的时候,内容装饰将会被显示或者隐藏 

- Status bar scrim(状态栏布) 

- Parallax scrolling children,滑动的时候孩子呈现视觉特差效果 

- 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 实现了这两个方法。

(2) 嵌套滚动

onNestedPreScroll

onNestedPreFling

(3) child 和 dependency

layoutDependsOn:决定 child 依赖谁(dependency)。

onDependentViewChanged:dependency 的大小或位置发生了变化。

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

描述了两个(或多个)View 之间的依赖关系,表现为一个或多个 child 依赖 dependency。当 dependency 的大小或位置发生了改变,child 可以做出一些你需要的响应(改变位置、大小等)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容