Android:事件分发机制

分发脉络图

点击事件分为四件:down、move、up、cancel,前三个是我们要关注的
事件分成层次分为四层:Activity、ViewGroup、View
涉及的方法分为三个:dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent
在这里插入图片描述

分发规律

  • Activty通过return super.dispatchTouchEvent()向下分发事件,无论return false/true都会消费事件
  • ViewGroup会收到Activity传下来的事件,通过onInterceptTouchEvent返回值检查是否向下传递,若返回值为ture则调用VewGroup的onTouch,且不将事件不向下传递。
  • 传递则需要返回false或super.dispatchTouchEvent
  • 若onTouch返回false表示事件没有被消费,接着到onTouchEvent,其中会触发click监听器
  • 若onInterceptTouchEvent返回false也会传递到子view
  • 子view收到事件后,可通过super.dispatchTouchEvent调用view自身的onTouchEvent,也可返回false调用ViewGroup的onTouchEvent
  • move和up事件,则是会传递到down被拦截的组件,调用对应注解的onTouch事件或父view的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值