美文网首页搞个安卓
behavior使用记录二

behavior使用记录二

作者: space0o0 | 来源:发表于2016-12-02 22:40 被阅读17次

    自定义behavior的使用

    本次实现的效果:
    点击红色图片,绿色的跟随移动

    behavior_demo2.gif

    xml代码:

    behaviorDemo3.png

    behavior的代码:

    public BehaviorExample2Behavior(Context context, AttributeSet attrs) {
        super(context, attires);
    }
    @Override
    public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
        /**
         * child为绑定的view,dependency为发生变化的view
         */
        return dependency instanceof TextView;
    }
    @Override
    public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
        /**
         * 当dependency位置发生改变时,计算两个控件水平的距离
         * 再设置child的位移
         */
        int offSet = (int) (dependency.getX() - child.getX());
        ViewCompat.offsetLeftAndRight(child, offSet);
        return super.onDependentViewChanged(parent, child, dependency);}
    
    

    绑定是在xml中进行的,所以需要BehaviorExample2Behavior(Context context, AttributeSet attrs)构造函数。

    layoutDependsOn方法:用于关联手动发生变化的控件(红色块位置手动改变)
    这里需要搞清楚的就是child和dependency分别对应的控件。
    child:绑定的控件,图片中绿色的textview
    dependency:发生变化的控件,图中红色的textview

    onDependentViewChanged方法:当dependency发生改变的时候,会调用该方法。相应操作说明已经写在了注释中。

    再看activity中的代码:

    behaviorDemo4.png

    非常简单的逻辑,点击dependency,使该控件向右移动。


    实现了NestedScrollingChild的控件

    相关文章

      网友评论

        本文标题:behavior使用记录二

        本文链接:https://www.haomeiwen.com/subject/hwbqmttx.html