Android事件分发机制有三类:Activity、View、ViewGroup,其调用顺序是Activity->ViewGroup->View,考虑到实际开发中Activity的事件分发很少用到,这里便不作赘述。想要了解的可自行百度、谷歌。
下面,我从View的事件分发开始。
View的事件分发
我们知道,任何触摸事件都是从dispatchTouchEvent函数开始。在View的dispatchTouchEvent函数中,会看到这样的代码块:
1 | ... |
说明View若要进行事件分发,那么会优先分发给onTouch(),若onTouch()返回true,则直接返回true,不会进入到onTouchEvent()中。否则,进入到onTouchEvent()。
more >>

