安卓的touch事件传递
2015-08-08 00:32
281 查看
http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html,这个帖子讲的比较清楚。
其实,我们也做过类似的试验,但是没有很好的记录下来,导致我们可能还需要去花时间去验证这个结果,科学的方法就是要把你的试验纪录下来,把数据记录下来,现在可能没有用,那是因为你还不理解、不懂,但是将来很有可能给你很大的帮助,记得在360时,测试部门的一个负责人非要跟我较这个劲,问我记这些有什么用,不需要记,我说纪录这个是一种科学的态度,它会帮助你去认识,而这只多花费你很少的时间;相反,你不记录,你又有什么收获呢?
初步总结如下:
1.安卓的onTouchEvent是从孩子到父亲。
2.onInterceptTouchEvent是从父亲到孩子去询问,这个事件要传递到哪一个孩子级。
3.dispatchTouchEvent是在onTouchEvent之前先处理touch事件,如果要处理,事件才会传递给onTouchEvent。
其实我记得,我当时看源代码,这个事件是先到父亲这里,然后父亲要去查询都有哪些孩子会处理这个事件,如果那个孩子消费了,就结束了;没有消费,就回到父亲来消费。
为什么这样呢,因为我们是先知道父亲,例如activity,然后找到它的孩子,即父亲知道孩子,那么事件也是先给父亲,父亲用onInterceptTouchEvent去询问要传递到哪一级的孩子,然后把事件去交给这个孩子处理,如果它处理完,直接消耗掉,这个事件就处理完了。
其实,我们也做过类似的试验,但是没有很好的记录下来,导致我们可能还需要去花时间去验证这个结果,科学的方法就是要把你的试验纪录下来,把数据记录下来,现在可能没有用,那是因为你还不理解、不懂,但是将来很有可能给你很大的帮助,记得在360时,测试部门的一个负责人非要跟我较这个劲,问我记这些有什么用,不需要记,我说纪录这个是一种科学的态度,它会帮助你去认识,而这只多花费你很少的时间;相反,你不记录,你又有什么收获呢?
初步总结如下:
1.安卓的onTouchEvent是从孩子到父亲。
2.onInterceptTouchEvent是从父亲到孩子去询问,这个事件要传递到哪一个孩子级。
3.dispatchTouchEvent是在onTouchEvent之前先处理touch事件,如果要处理,事件才会传递给onTouchEvent。
为什么这样呢,因为我们是先知道父亲,例如activity,然后找到它的孩子,即父亲知道孩子,那么事件也是先给父亲,父亲用onInterceptTouchEvent去询问要传递到哪一级的孩子,然后把事件去交给这个孩子处理,如果它处理完,直接消耗掉,这个事件就处理完了。
相关文章推荐
- Computing GC Content
- 脉果儿邀请码3071916
- HDU 2717 Catch That Cow
- Android使用xUtils方便地下载 / xUtils介绍
- Media Formatters
- 第一百二十七天 how can I 坚持
- C#实现ActiveX控件开发与部署
- 谈谈java垃圾回收机制
- 越狱开发-创建真正的后台程序(Daemon Process)
- 劫持系统函数system
- java学习笔记——String类
- python开发_counter()
- 下拉框选择效果的实现原理
- 位操作基础篇之位操作全面总结
- 动画延迟消失
- JavaScript高级程序设计 读书笔记 第二章
- 课后作业 06 -- 小数后几位精确判断并输出
- 黑马程序员--多线程总结2--java
- 《Objective-C基础教程》第5章 复合
- Leetcode # 103 Binary Tree Zigzag Level Order Traversal