android的事件分发机制有两个主角:View、ViewGroup
ViewGroup包含View,作为孩子的View又可以作为ViewGroup包含下一级View…… ViewGroup有三个事件:onInteceptTouchEvent、dispatchTouchEvent、onTouchEvent说一下我的理解:
onInteceptTouchEvent负责事件拦截 dispatchTouchEvent负责事件分发 onTouchEvent负责事件处理 View只有dispatchTouchEvent、onTouchEvent作用同上。下面说一下这之间的作用关系:
1.onInteceptTouchEvent,返回boolean,false表示不拦截事件 事件传递到下一级view
2.dispatchTouchEvent ,返回boolean。 true: 表示不往下分发,又自己处理,然后执行onTouchEvent来处理事件(PS:dispatchTouchEvent本身不处理事件); false: 分发事件 事件传递到下一级view
3.onTouchEvent, 处理事件
以上是我的理解,感觉这么解释更好理解,说的不对的地方欢迎留言指正。想要深入研究的同学出门左转大神的博客: