分发事件的组件
分发事件的组件,也称为分发事件者,包括Activity、View和ViewGroup。它们三者的一般结构为:
从上图中可以看出,Activity包括了ViewGroup,ViewGroup又可以包含多个View。
分发的核心方法
负责对事件进行分发的方法主要有三个,分别是:
- dispatchTouchEvent()
- onInterceptTouchEvent()
- onTouchEvent()
它们并不存在于所有负责分发的组件中,其具体情况总结于下面的表格中:
组件 | dispatchTouchEvent | onInterceptTouchEvent | onTouchEvent |
Activity | 存在 | 不存在 | 存在 |
ViewGroup | 存在 | 存在 | 存在 |
View | 存在 | 不存在 | 存在 |
事件流程图(Action_Down)
注意:Action_Move和Action_Up流程和上图是有区别的
参考文章:
https://www.cnblogs.com/chengxuyinli/p/9979826.html(安卓事件分发机制)
https://www.jianshu.com/p/d82f426ba8f7(Android事件分发机制及滑动冲突解决方案)