
事件分发
- 事件分发对象
- 点击事件Touch
- 封装事件细节的对象MotionEvent
- 事件类型
- 按下
- 抬起
- 滑动
- 结束事件
- 事件分发
- 本质就是事件的传递
- 涉及的对象: activity viewgroup view
- 事件分发的顺序: activity viewgroup view
- 事件处理的顺序: view viewgroup activity
- 事件分发涉及的方法:
- dispatchTouchevent 分发事件
- ontouchevent 处理事件
- onintercepttouchevent 拦截事件
- 场景
- 默认情况: 不重写三个方法
- 调用顺序就是逐层下降(事件分发顺序) , 逐层返回(事件处理顺序)
- 某个view处理点击事件
- clickable 设置为 true
- 重写ontouchevent 返回 true
- 中间view拦截down事件
- 重写该view的 onintercepttouchevent 和 ontouchevent 返回true
- 中间view拦截move事件
- 事件仍然传递给view,这个事件会变为一个cancel事件给view,之后的move事件就传递给上一层的viewgroup
- 默认情况: 不重写三个方法
本文深入探讨了事件分发机制的核心概念,包括事件分发对象、事件类型、事件分发和处理的顺序,以及涉及的主要方法如dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent。通过具体场景说明了默认情况下事件如何在Activity、ViewGroup和View间传递,以及如何通过重写方法实现事件的拦截和处理。
1204

被折叠的 条评论
为什么被折叠?



