有三个方法:

dispatchTouchEvent

onInterceptTouchEvent

onTouchEvent

首先:A的dispatchTouchEvent-A的onInterceptTouchEvent

B的dispatchTouchEvent B的onInterceptTouchEvent 。。。

之后呢,如果不在传递了,那么就最后一个元素的onTouchEvent

往上传递,B的onTouchEvent –A的onTouchEvent

中间各个方法返回值不同,传递过程就会中断。总结如下:

dispatchTouchEvent
不管是返回true, 还是false,都不会再走 自己的onInterceptTouchEvent onTouchEvent ,也不会向下传递
只有返回super…..才可以继续 onInterceptTouchEvent onTouchEvent
然后往下传递 如果返回true ,那么以后的事件都由dispatchTouchEvent 处理,不会再交给onTouchEvent
如果返回false,那么以后的事件都由dispatchTouchEvent 处理,不会再交给上层 onTouchEvent ,不管上层返回true或false,都要它处理。
onInterceptTouchEvent

就是配合dispatchTouchEvent  的,不想向下分发就拦截掉,直接执行自己的onTouchEvent
返回true 则接执行自己的onTouchEvent 不想向下分发
返回false 和返回super…..一样
onTouchEvent  

返回true  表示当前这个控件自己处理touch时间,包括以后的move  ,up ,传递过程中,如果上一级有其他的onTouchEvent  ,那么其他的只执行一次,以后直接分发到这一级之后直接调用onTouchEvent.
返回 false 和返回super 一样 ,自己不处理

这个事情我算是搞明白了,看了无数篇文章,最后搞明白还是自己动手写的demo,很简单的demo,以后知道了,想要获取一些真理,还是要动手实践来的正确。自己动手印象深刻。

以后这种事情,就自己动手去打断点,打log,去看。追求真理,追求知识,不要偷懒,不要嫌麻烦。

android 事件传递机制的更多相关文章

  1. Android事件传递机制(转)

    Android事件构成 在Android中,事件主要包括点按.长按.拖拽.滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作.所有这些都构成了Android中的事件响应.总的来说,所有的事件都 ...

  2. Android事件传递机制详解及最新源码分析——ViewGroup篇

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴 ...

  3. Android事件传递机制详解及最新源码分析——View篇

    摘要: 版权声明:本文出自汪磊的博客,转载请务必注明出处. 对于安卓事件传递机制相信绝大部分开发者都听说过或者了解过,也是面试中最常问的问题之一.但是真正能从源码角度理解具体事件传递流程的相信并不多, ...

  4. Android事件传递机制详解及最新源码分析——Activity篇

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 在前两篇我们共同探讨了事件传递机制<View篇>与<ViewGroup篇>,我们知道View触摸事件是ViewGroup传递 ...

  5. Android事件传递机制总结

    Android中控件的分类 Activity dispatchTouchEvent(MotionEvent e) onTouchEvent(MotionEvent e) ViewGroup(View) ...

  6. Android事件传递机制

    http://blog.csdn.net/awangyunke/article/details/22047987 1)public boolean dispatchTouchEvent(MotionE ...

  7. android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()总结

    老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了: 1.onInterceptTouchEvent( ...

  8. android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解二之小秘与领导的故事

    总结的不是很好,自己也有点看不懂,正好现在用到了,研究了一个,再次总结,方便大家查看 总则: 1.onInterceptTouchEvent中有个Intercept,这是什么意思呢?她叫拦截,你大概知 ...

  9. android 事件传递机制(1)

    在项目中,经常遇到事件冲突,ScrollView,ViewPager滑动卡顿等情况,比如:onClick和onLongClick事件冲突,dispatchTouchEvent,onInterceptT ...

随机推荐

  1. Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格

    使用教程  https://blog.csdn.net/stillonmyway/article/details/79109741 我使用使用的是护眼型的

  2. 分享一个JDK1.8丢失数字精度的案例

    差异出现在 DigitList.java的 round() 方法处理上: 1.6: 1.8: 根据设置规则消除无需显示的数字时,JDK1.8 新增了一个二进制数向ASCII码转换的过程如下: 从而导致 ...

  3. Spark python集成

    Spark python集成 1.介绍 Spark支持python语言,对于大量的SQL类型的操作,不需要编译,可以直接提交python文件给spark来运行,因此非常简单方便,但是性能要比scala ...

  4. JavaScript 编写随机四位数验证码(大小写字母和数字)

    1.JavaScript编写随机四位数验证码,用到的知识点为: a.Math对象的随机数:Math.random() b.Math对象的取整    :Math.floor() c.处理所需要的下标个数 ...

  5. 概念:RPG游戏中两个兵种互相攻击的逻辑

    直接上题目: 解析题目: 根据题目的解析,进行代码的实现: 输出结果: 心得: (1) 当我们面对‘公式结果不是我们想要的’时,应该在脑海里将一个完整的攻击流程进行想象,就会对流程有个更清晰的思路 ( ...

  6. **611. Valid Triangle Number three pointer O(n^3) -> square(binary search larget number smaller than target)

    Given an array consists of non-negative integers, your task is to count the number of triplets chose ...

  7. D. Bicycle Race_几何

    D. Bicycle Race time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  8. 在CentOS 6.5上安装NodeJS

    CentOS的软件源未包含有最新的nodejs, 需要手动编译安装. 首先安装依赖的库与工具 yum install libtool automake autoconf gcc-c++ openssl ...

  9. 几位it 前辈的博客

    赵劼 http://blog.zhaojie.me/?page=2 陈硕 http://www.cnblogs.com/Solstice/ 轮子哥 http://www.cnblogs.com/gen ...

  10. mingw libgcc_s_sjlj-1.dll is missing

    习惯了在linux环境下工作,编译wingdows平台程序采用mingw工具.编译完,运行exe程序,弹出错误信息: libgcc_s_sjlj-1.dll is missing 百度了一下,原来是编 ...