@linux1s1s
2019-02-14T22:59:38.000000Z
字数 596
阅读 2106
AndroidView
2015-06
在了解ViewGroup事件分发之前,请先阅读关联博客Android View 事件分发
对于ViewGroup
的事件分发和View
的事件分发是一致的,所以我们先来看看ViewGroup
这个类的分发事件方法:
这里首先执行的就是 onInterceptTouchEvent(ev)
这个方法,负责拦截事件的发生,这个接口默认返回的是false,表示不拦截事件的传递:
如果onInterceptTouchEvent(ev)
返回值为false,那么父View不会拦截事件,所有子View都会有机会执行dispatchTouchEvent(event)
,
这个就回到了View的dispatchTouchEvent(event)
执行路径了
如果onInterceptTouchEvent(ev)
返回值为true,那么父View拦截事件,所有子View都没有机会执行dispatchTouchEvent(event)
,也就不能执行onTouch
方法和onToucheEvent
方法了。
所以如果不拦截事件,那么又回到了View的事件分发,请直接阅读关联博客Android View 事件分发,这里不再赘述了。
如果想对事件分发机制更直观的理解,可以看一篇转载文章:
Android View事件分发测试Demo