Android 事件分发原理
事件分发流程:是一个从顶至底的层级传递过程,涉及
Activity、ViewGroup 和 View。
(1)dispatchTouchEvent:事件分发;
(2)onInterceptTouchEvent: 事件拦截;
(3)onTouchEvent:事件处理;
1. Activity 分发:
事件首先到达 Activity,通过 Activity 的
dispatchTouchEvent() 方法开始处理。如果 Activity 没拦截
这个事件,它将事件向下传递给它的根视图(一个
ViewGroup)。
2. ViewGroup 分发:
在 ViewGroup 中,dispatchTouchEvent() 同样被调用。
ViewGroup 可以选择拦截这个事件,通过实现
onInterceptTouchEvent() 方法。如果 ViewGroup 拦截了事件
(返回 true),则事件不再向下传递,而是交由 ViewGroup 的
onTouchEvent() 方法处理。
如果 ViewGroup 没有拦截(onInterceptTouchEvent() 返回
false),事件将继续传递给子视图。
3. 子视图处理: