CoordinatorLayout是support design下的类(android.support.design.widget.CoordinatorLayout),使用CoordinatorLayout可以实现CoordinatorLayout下Child的事件的联动。事件包括大小的改变,位置的改变。
怎样使用CoordinatorLayout实现View的联动
1. view 都位于CoordinatorLayout下
2. 为触发联动的view设置behavior通过属性 layout_behavior 设置
3. 实现behavior的方法
理解behavior
behavior 我们实现 CoordinatorLayout.Behavior的子类。有两个重要的方
//判断child的布局是否依赖,dependency true依赖
public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency);
//当dependency的位置或高度发生改变是调用 true表示child的高度或位置改变
public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency)
其中,child表示CoordinatorLayout的子View,dependency表示依赖的View 即触发联动的view。注意接口里面返回值。
通过CoordinatorLayout对于View联动的解耦很有用。也节省了大量的代码。