前言
由于在项目中遇到比较特殊的点击事件,让我去了解Android 触摸事件的传递机制
最后总结:
-
-
-
-
事件分发 事件拦截 事件消费
dispatchTouchEvent ---> onInterceptTouchEvent ---> onTouchEvent
传递过程:
首先手指触摸频幕传入到当前Activity,由当前的Activity 的dispatchTouchEvent (事件分发)给ViewGroup,ViewGroup向下分发,但是要先过onInterceptTouchEvent (事件拦截)方法,如果被拦截了,事件由当前的 ViewGroup 传递到onTouchEvent(事件消费),如果ViewGroup没有拦截那么久传递到下一级的View,下一级的View 如果还有下一级 ,依次类推。其实看图很清楚的 ,我讲不好~