Behavior常用的方法
构造方法有两个:
1 2 3
| 默认:public Behavior() {} 布局:public Behavior(Context context, AttributeSet attrs) { }
|
两个构造方法也比较容易理解,一个是默认的空参的构造方法,一个是带有布局属性AttributeSet
的方法,有了这个构造方法,可以直接在布局文件中使用
根据Behavior
的特性,可以将内部的方法分以下类:
1 2
| 测量:public boolean onMeasureChild(){} 布局:public boolean onLayoutChild(){}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| //当Behavior添加到参数实例时,回调 public void onAttachedToLayoutParams(){} //当Behavior与参数实例分离时,回调 public void onDetachedFromLayoutParams(){} //当Behavior关联的对象想要定位到特定的矩形时,回调 public boolean onRequestChildRectangleOnScreen(){} //当一个ChildView设置为回避属性时,回调 public boolean getInsetDodgeRect(){} //当窗口发生改变时,回调 public WindowInsetsCompat onApplyWindowInsets(){} //需要保存临时状态信息,回调 public Parcelable onSaveInstanceState(){} //需要恢复临时状态信息,回调 public void onRestoreInstanceState(){} //作用未知 public int getScrimColor(){} //作用未知 public float getScrimOpacity(){}
|
确定依赖与绑定对象:
1 2
| //根据参数来确定依赖与绑定对象 public boolean layoutDependsOn(){}
|
当依赖对象发生改变时:
1 2 3 4 5
| //当依赖对象发生改变,包括位置,大小,颜色,进行回调 public boolean onDependentViewChanged(){} //当依赖对象被移除时,进行回调 public void onDependentViewRemoved(){}
|
1 2 3 4 5
| //拦截事件,在CoordinatorLayout把事件分发到childView之前 public boolean onInterceptTouchEvent(){} //消费事件 public boolean onTouchEvent(){}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //CoordinatorLayout中的滑动嵌套childView开始启动一次嵌套滚动时,回调 public boolean onStartNestedScroll(){} //嵌套滑动结束时,回调 public void onStopNestedScroll(){} //当一次嵌套滑动被CoordiantorLayout识别并确定时,进行回调 public void onNestedScrollAccepted(){} //嵌套滚动正在进行中并且绑定目标childView已经开始滚动或者被CoordinatorLayout接受后试图滚动 public void onNestedScroll(){} //嵌套滚动正在准备更新进度,并且是在绑定目标childView已经出现滚动距离之前,回调 public void onNestedPreScroll(){} //当嵌套滚动的childView正在开始fling或者一个动作确认为fling public boolean onNestedFling(){} //当滑动嵌套childView检测到适当的条件,马上开始一次fling事件前回调 public boolean onNestedPreFling(){}
|