博客
关于我
Android Support Design 中 CoordinatorLayout 与 Behaviors 初探
阅读量:127 次
发布时间:2019-02-27

本文共 1037 字,大约阅读时间需要 3 分钟。

Android M Preview发布后,我们引入了Android Design Support Library,这个库旨在实现Google Material Design的标准化控件。其中最引人注目的便是CoordinatorLayout,这是一个用于组织子视图协作的父视图。它的工作原理类似于FrameLayout,子视图按层叠的方式堆叠显示。

CoordinatorLayout的独特之处在于其Behavior对象。Behavior对象的主要作用是定义用户与子视图之间的交互方式。例如,AppBarLayout的Behavior类(如ScrollingViewBehavior)可以帮助实现自定义的滑动效果。

Behavior接口提供了多个方法来定义交互逻辑。例如,layoutDependsOn方法用于指定哪些视图依赖于CoordinatorLayout。这个方法告诉CoordinatorLayout,哪些子视图依赖于特定的视图(如AppBarLayout),从而在布局过程中正确定位它们。

在测量(measure)和布局(layout)过程中,CoordinatorLayout会调用Behavior对象的相关方法。例如,onMeasureChild方法可以根据子视图的依赖关系,动态调整子视图的大小。通过获取依赖视图的尺寸,CoordinatorLayout可以更精确地计算子视图的布局参数。

此外,Behavior对象还提供了处理嵌套滑动(NestedScrolling)的方法。这些方法允许CoordinatorLayout在子视图之间传递滑动事件,从而实现复杂的视觉效果。例如,onStartNestedScroll、onNestedPreScroll、onNestedScroll和onStopNestedScroll等方法,可以帮助子视图之间协调滑动动作。

通过Behavior对象,CoordinatorLayout提供了一种灵活的方式来定义子视图之间的交互规则。开发者可以根据需求自定义Behavior类,实现复杂的布局和动画效果。例如,AppBarLayout的Behavior类可以根据滑动方向调整其子视图的显示位置。

总的来说,CoordinatorLayout通过Behavior对象实现了传统ViewGroup的功能,提供了一种更灵活的视图层次管理方式。它不仅允许子视图之间进行通信,还能协同处理布局和滑动效果,从而提升应用的用户体验。

转载地址:http://dxgf.baihongyu.com/

你可能感兴趣的文章
Objective-C实现二进制移位算法(附完整源码)
查看>>
Objective-C实现二进制补码算法(附完整源码)
查看>>
Objective-C实现二进制计数尾随零算法(附完整源码)
查看>>
Objective-C实现二进制计数设置位算法(附完整源码)
查看>>
Objective-C实现二进制转八进制算法(附完整源码)
查看>>
Objective-C实现二进制转十六进制算法(附完整源码)
查看>>
Objective-C实现二项式堆binomial heap算法(附完整源码)
查看>>
Objective-C实现互斥量 (附完整源码)
查看>>
Objective-C实现互斥锁同步执行两个线程函数(附完整源码)
查看>>
Objective-C实现交易密码算法(附完整源码)
查看>>
Objective-C实现亨元模式(附完整源码)
查看>>
Objective-C实现人工势场法(附完整源码)
查看>>
Objective-C实现人民币金额转换成大写中文(附完整源码)
查看>>
Objective-C实现人物动画移动效果(附完整源码)
查看>>
Objective-C实现从给定的子串列表返回包含所有可能的列表算法(附完整源码)
查看>>
Objective-C实现代理服务器(附完整源码)
查看>>
Objective-C实现代理模式(附完整源码)
查看>>
Objective-C实现令牌桶算法(附完整源码)
查看>>
Objective-C实现以数组形式返回斐波那契数列fibonacci算法(附完整源码)
查看>>
Objective-C实现以递归的形式MatrixExponentiation矩阵求幂算法 (附完整源码)
查看>>