android 自定义Behavior 笔记

自定义Behavior 一般可以重写这些方法

  • onInterceptTouchEvent():是否拦截触摸事件
  • onTouchEvent():处理触摸事件
  • layoutDependsOn():确定使用BehaviorView要依赖的View的类型
  • onDependentViewChanged():当被依赖的View状态改变时回调
  • onDependentViewRemoved():当被依赖的View移除时回调
  • onMeasureChild():测量使用BehaviorView尺寸
  • onLayoutChild():确定使用BehaviorView位置
  • onStartNestedScroll():嵌套滑动开始(ACTION_DOWN),确定Behavior是否要监听此次事件
  • onStopNestedScroll():嵌套滑动结束(ACTION_UPACTION_CANCEL
  • onNestedScroll():嵌套滑动进行中,要监听的子 View的滑动事件已经被消费
  • onNestedPreScroll():嵌套滑动进行中,要监听的子 View将要滑动,滑动事件即将被消费(但最终被谁消费,可以通过代码控制)
  • onNestedFling():要监听的子 View在快速滑动中
  • onNestedPreFling():要监听的子View即将快速滑动


一般我们定义一个behavior 像下面这样

public class MyBehavior extends CoordinatorLayout.Behavior<View> {

    public MyBehavior() {
    }

    public MyBehavior(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
        return super.layoutDependsOn(parent, child, dependency);
    }

    @Override
    public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
        return super.onDependentViewChanged(parent, child, dependency);
    }
}

其中两个构造参数一定要写,

layoutDependsOn()方法表示我们要依赖的View

onDependentViewCHanaged()表示监听的View 变化的时候 去变化依赖他的View

其中CoordinatorLayout parent 表示最外面的CoordinatorLayout 

View child 表示添加这个behavior的View

View dependency 表示监听的那个View

然后我们把这个写在String.xml里面,用的时候在布局xml控件里添加@String/就行了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值