学习地址:Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
作者的文章已经写得很清楚了。ViewGroup就是比变通的View多了个拦截机制,通俗点讲就是ViewGroup中重写了dispatchTouchEvent(),在其中加上了拦截和对子view的分发管理,而默认情况下是不会拦截的。借用一下作者整理的总结:
1. Android事件分发是先传递到ViewGroup,再由ViewGroup传递到View的。
2. 在ViewGroup中可以通过onInterceptTouchEvent方法对事件传递进行拦截,onInterceptTouchEvent方法返回true代表不允许事件继续向子View传递,返回false代表不对事件进行拦截,默认返回false。
3. 子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。