Android事件分发机制
2021-04-17 本文已影响0人
青楼楼长
主要就是三个方法
1 、dispatchTouchEvent()分发 Activity Viewgroup View都有此方法
2、onTouchEvent() 事件处理 Activity Viewgroup View都有此方法
3、inteceptor 事件拦截 只有ViewGroup独有此方法
总结起来就是:
每个方法都有返回值
true:表明消费此事件
fasle:表明不消费
dispatch:一个事件来了,先从Activity -> Viewgroup -> View 的顺序进行。如果被消费了也就是dispatch返回了true,则会在对应的这三层中继续执行ontouch方法。那么在下一次的事件来的时候也会分发到这一层。如果都没有被消费,则会交由父层的onTouchEvent帮忙处理。反正最后哪一层的处理了,在下一次的 事件处理就分发到哪一层。其中ViewGroup的拦截事件如果拦截了的话(return true)则交由ViewGroup 的onTouchEvent事件进行处理。