网上有太多关于Android Touch事件分发和消费博客写得都太过复杂,之前也看的是似懂非懂,于是亲手来过一遍,其实总结起来很简单,讲起来也很简单。
1.事件分发
主要涉及到的只有2个方法:
(1).dispatchTouchEvent;
(2).onInterceptTouchEvent;
首先是 最外层的父View的dispatchTouchEvent方法先获得事件,return不同值的调用过程如下:
![](https://img-blog.csdn.net/20170211075319244?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWtuZXcxMjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.事件消费
主要涉及到的方法:onTouchEvent;
首先是 最内层的子View的onTouchEvent先处理,return不同值的调用过程如下:
很简单吧!(不贴源码出来?没必要,真的很TM简单,自己测试就知晓)
但需要注意的是,同一个View的这3个方法的执行顺序,如下图:
![](https://img-blog.csdn.net/20170210112658239?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWtuZXcxMjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
到此,android事件讨论结束。