Material Design-CoordinatorLayout

来源:互联网 发布:东莞广电网络多少兆 编辑:程序博客网 时间:2024/06/05 07:00

协调布局作为一个 容器与一个或者多个子View进行交互,一般在最上层,协调布局可以控制子view之间相互协作

设置锚点
将view定位到锚点view

app:layout_anchor="@id/xxx"

锚点位置
值有 bottom、center、right、left、top

app:layout_anchorGravity

设置行为
app:layout_behavior

默认的行为有:滚动行为,通过字符串资源引用

@string/appbar_scrolling_view_behavior

app:layout_behavior="@string/appbar_scrolling_view_behavior"

beihavior的自定义
参考:
http://blog.csdn.net/briblue/article/details/73076458

1、确定 CoordinatorLayout 中 View 与 View 之间的依赖关系,通过 layoutDependsOn() 方法,返回值为 true 则依赖,否则不依赖。

2、当一个被依赖项 dependency 尺寸或者位置发生变化时,依赖方会通过 Byhavior 获取到,然后在 onDependentViewChanged 中处理。如果在这个方法中 child 尺寸或者位置发生了变化,则需要 return true。

3、当 Behavior 中的 View 准备响应嵌套滑动时,它不需要通过 layoutDependsOn() 来进行依赖绑定。只需要在 onStartNestedScroll() 方法中通过返回值告知 ViewParent,它是否对嵌套滑动感兴趣。返回值为 true 时,后续的滑动事件才能被响应。同时在onNestedPreScroll处理滑动的后续变化

4、嵌套滑动包括滑动(scroll) 和 快速滑动(fling) 两种情况。开发者根据实际情况运用就好了。 Behavior 通过 3 种方式绑定:1. xml 布局文件。2. 代码设置 layoutparam。3. 自定义 View 的注解。

5、需要实现xml中引用需要实现两个参数的构造MyBehavior(context: Context,attributeSet: AttributeSet)否则会爆错

原创粉丝点击