CoordinatorLayout简介

CoordinatorLayout简介

CoordinatorLayout的作用

  • 协调子view的布局,降低子view之间的耦合度

CoordinatorLayout的使用

  • 核心:Behavior,用来执行开发者定制的动作

    • 首先需要理解两个概念:Child和Dependency

    • Child:要执行动作的CoordinatorLayout的子View

    • Dependency:指Child依赖的View

    • 简而言之,就是如果Dependency这个View发生了变化,那么Child这个View就要相应发生变化.具体发生什么变化,就要引入Behavior了,因为Child发生变化的具体执行代码是放在Behavior这个类里面的

如何使用Behavior

  • 首先,需要定义一个类,继承CoordinatorLayout.Behavior,其中泛型参数T是我们要执行动作的View类,也就是Child

  • 然后,去实现Behavior中的两个方法:

/**
 * 判断child的布局是否依赖dependency
 */
 @Override
 public boolean layoutDependsOn(CoordinatorLayout parent, T child, View dependency) {
    boolean rs;
    //根据逻辑判断rs的取值
    //返回false表示child不依赖dependency,ture表示依赖
    return rs;  
}

/**
 * 当dependency发生改变时(位置、宽高等),执行这个函数
 * 返回true表示child的位置或者是宽高要发生改变,否则就返回false
 */
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, T child, View dependency) {
     //child要执行的具体动作
     return true;
}
posted @ 2017-08-15 09:20  喳喳的夏天  阅读(275)  评论(0编辑  收藏  举报