onInterceptTouchEvent(),onTouchEvent() 默认返回false

注:事件分发机制是由 dispatchTouchEvent() 开始分发的

onInterceptTouchEvent()

ACTION_DOWN ------------ return true: ---→  将事件传递给该view下的 onTouchEvent()                                                                                                                                                                                                                                                                                                                          ACTION_MOVE ACTION_UP 都将直接由 onTouchEvent() 响应

该view的 onInterceptTouchEvent() 将无法响应 ACTION_MOVE,ACTION_UP

------------ return false:    ↓   将事件向下传递(判断是否存在下级)

无下级: 将事件传递给该view下的 onTouchEvent()(等同于返回true)

有下级: 判断下一级是View 还是 ViewGroup

ViewGroup : 将事件传递给下一级的 onInterceptTouchEvent(),一直向下传递

View: 将事件传递给下一级的 onTouchEvent()

ACTION_MOVE ,ACTION_UP 都将由第一级别的 onInterceptTouchEvent() 响应

return false: 将ACTION_MOVE 事件传递给下一级的 onInterceptTouchEvent() ,以此类推

return true:   将ACTION_CANCEL 事件传递给 下面级别的所有响应 ACTION_DOWN 事件的方法,

将ACTION_MOVE 事件传递给此view 的onTouchEvent()
,所以接下来的action(ACTION_MOVE,ACTION_UP)都将按照这个顺序传递

onTouchEvent()

ACTION_DOWN ------------- return true: ---→  判断是否存在上级

无上级:将事件传递给下面的action(响应 ACTION_MOVE,ACTION_UP)

ACTION_MOVE,ACTION_UP: 将直接由 onTouchEvent() 响应

有上级:将事件传递给 第一级 onInterceptTouchEvent() 来响应 ACTION_MOVE,ACTION_UP 事件

第一级的onInterceptTouchEvent() 响应了ACTION_MOVE 事件后

return false: 将ACTION_MOVE 事件传递给下一级的 onInterceptTouchEvent() ,以此类推

return true:   将ACTION_CANCEL 事件传递给 下面级别的所有响应 ACTION_DOWN 事件的方法

将ACTION_MOVE 事件传递给此view 的onTouchEvent() ,所以接下来的action(ACTION_MOVE,ACTION_UP)都将按照这个顺序传递

------------- return false:    ↑    将事件向上传递(判断是否存在上级)

无上级:事件终止  X

有上级:事件传递给上一级的 onTouchEvent()

onTouchEvent()

onInterceptTouchEvent / onTouchEvent响应事件的详析的更多相关文章

  1. cocos2dx+lua注册事件函数详解 事件

    coocs2dx 版本 3.1.1 registerScriptTouchHandler             注册触屏事件 registerScriptTapHandler             ...

  2. cocos2dx+lua注册事件函数详解

    coocs2dx 版本 3.1.1 registerScriptTouchHandler 注册触屏事件 registerScriptTapHandler 注册点击事件 registerScriptHa ...

  3. 关于dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的分发机制浅析

    虽说这个问题不是很难...动动手就能看出答案...但是似乎不太容易理解...几次尝试把这个问题说明白....但是好像感觉说不明白....(顿时想起了那句话----说不明白就是自己还不明白! 我怎么可能 ...

  4. HTTP 状态响应码 意思详解/大全

    HTTP 状态响应码 意思详解/大全 转:http://blog.csdn.net/helin916012530/article/details/29842595 HTTP状态码(HTTP Statu ...

  5. JS的预编译和执行顺序 详析

    原文:JS的预编译和执行顺序 详析 最近在复习javascript的事件处理时发现了一个问题,然后也是我来写javascript的预编译和执行顺序的问题   代码:   复制代码 代码一 <ht ...

  6. (转载)【cocos2dx 3.x Lua] 注册事件函数详解

    出处: http://www.2cto.com/kf/201409/338235.html coocs2dx 版本 3.1.1 registerScriptTouchHandler 注册触屏事件 re ...

  7. 【转】关于cocos2dx+lua注册事件函数详解

    转载:http://www.taikr.com/article/1605 registerScriptTouchHandler 注册触屏事件registerScriptTapHandler注册点击事件 ...

  8. 每日一问:到底为什么属性动画后 View 在新位置还能响应事件

    在 Android 开发中,我们难免会使用动画来处理各种各样的动画效果,以满足 UI 的高逼格设计.对于比较复杂的动画效果,我们通常会采用著名的开源库:lottie-android,或许你会对 lot ...

  9. css3中动画(transition)和过渡(animation)详析

    css3中动画(transition)和过渡(animation)详析

随机推荐

  1. hdu 2037 今年暑假不AC

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  2. Unity 性能

    Unity 5.0 AMD 7650k 自带核显 Unity自建立方体2000正方体 50帧 但每个立方体多达60面 多个三角形 每秒100万面绘制 可能每个都要单独计算光照? 导入3ds模型相当于 ...

  3. 【转】PowerShell入门(十二):编写PowerShell管理单元和二进制模块

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/13/PowerShell_SnapIn.html PowerShell一开始就提出利用管理单元来实现 ...

  4. app开发方式大汇总

    1.原生方式.android平台使用java方式.IOS平台使用object-c或者swift方式.优点:可以将app的性能做到极致.缺点:开发效率低.维护成本高. 2.纯前端方式.比如用jquery ...

  5. C#委托和事件

    委托和事件都可以用来调用跟自己方法签名一样的方法,两者在使用中主要有以下区别: 委托和事件没有可比性,因为委托是类型,事件是对象: 委托可以在声明它的类外部进行调用,而事件只能在类的内部进行调用: 委 ...

  6. zabbix_sender自定义监控

    这里推荐这个博客 http://www.ttlsa.com/monitor/zabbix/ 在这里学一遍都不用买书,直接就能玩转zabbix了 回归正题 zabbix相关包下载地址:http://ww ...

  7. java多线程 生产者消费者模式

    package de.bvb; /** * 生产者消费者模式 * 通过 wait() 和 notify() 通信方法实现 * */ public class Test1 { public static ...

  8. Linux-4.4-x86_64 内核配置选项简介【转】

    转自:http://fx114.net/qa-188-150553.aspx 本篇文章主要介绍了"Linux-4.4-x86_64 内核配置选项简介",主要涉及到Linux-4.4 ...

  9. ubuntu14.04设置静态ip

    1. 找到文件并作如下修改: sudo vim /etc/network/interfaces 修改如下部分: auto eth0 iface eth0 inet static address 192 ...

  10. JSON对象转换问题

    今天调用别人接口遇到一个问题,原本约定的data格式为:JSON字符串,但本次返回了一个空字符串"", 大概是这样的 字符串类型的httpResult.data值为字result: ...