事件分发
- 事件分发对象
- 点击事件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
- 默认情况: 不重写三个方法