安卓的touch事件传递

http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html,这个帖子讲的比较清楚。


其实,我们也做过类似的试验,但是没有很好的记录下来,导致我们可能还需要去花时间去验证这个结果,科学的方法就是要把你的试验纪录下来,把数据记录下来,现在可能没有用,那是因为你还不理解、不懂,但是将来很有可能给你很大的帮助,记得在360时,测试部门的一个负责人非要跟我较这个劲,问我记这些有什么用,不需要记,我说纪录这个是一种科学的态度,它会帮助你去认识,而这只多花费你很少的时间;相反,你不记录,你又有什么收获呢?


初步总结如下:

1.安卓的onTouchEvent是从孩子到父亲。

2.onInterceptTouchEvent是从父亲到孩子去询问,这个事件要传递到哪一个孩子级。

3.dispatchTouchEvent是在onTouchEvent之前先处理touch事件,如果要处理,事件才会传递给onTouchEvent。


其实我记得,我当时看源代码,这个事件是先到父亲这里,然后父亲要去查询都有哪些孩子会处理这个事件,如果那个孩子消费了,就结束了;没有消费,就回到父亲来消费。

为什么这样呢,因为我们是先知道父亲,例如activity,然后找到它的孩子,即父亲知道孩子,那么事件也是先给父亲,父亲用onInterceptTouchEvent去询问要传递到哪一级的孩子,然后把事件去交给这个孩子处理,如果它处理完,直接消耗掉,这个事件就处理完了。

posted on 2015-08-08 00:33  chaiyu2002  阅读(92)  评论(0编辑  收藏  举报

导航