安卓事件分发流程

  • 前言

      事件分发机制算是Android很重要的一块知识体系了,如果能了解其原理,就能很轻松的处理比如滑动冲突、点击事件之间的冲突等问题。

  • 正文

      事件分发的顺序:Activity---》ViewGroup---》View    具体如下图:

解释一下:

   super:调用父类的方法

   true:消费掉事件(ViewGroup中拦截器onInterceptTouchEvent中的true表示拦截,然后分发给自身(ViewGroup)的onTouchEvent处理)

   false:不消费事件,事件继续往下传递 / 传给父控件也就是上一层onTouchEvent

 

  • 总结

   通过代码对上图的验证,了解到,只有ViewGroup才有onInterceptTouchEvent方法,并且只有当View消费掉事件之后,onInterceptTouchEvent才会执行move和up方法。

   View的onTouchEvent()方法执行之前,还有另一个方法会优先执行,这个方法就是onTouch()方法,在View中无法重写这个方法,只能通过在给view.setOnTouchListener(new View.OnTouchListener() {});的形式,才能执行onTouch()方法,而且onClick是根据onTouchEvent()的返回值来决定是否执行(返回super.onTouchEvent(event)执行,返回true/false都不会执行)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值