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. WebApi 通过类名获取类并实例化

    环境:Web Api 返回值类型为DTO实体,继承基类DTO---BaseResultDto public class BaseResultDto { /// <summary> /// ...

  2. Hdu 1009 FatMouse' Trade

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  3. final review 报告

    项目名:约跑 组名:nice! 组长:李权 组员:刘芳芳于淼韩媛媛 宫丽君 final Review会议 时间:2016.12.2  代码git的地址:https://git.coding.net/m ...

  4. 常用的yum命令

    linux各发行版有多种包管理机制,下面介绍基于RedHat系的yum包管理命令:   yum -y install xxx         无需询问,安装xxx包   yum list        ...

  5. 如何写出优雅的Python

    Looping over a range of numbers Bad: for i in [0,1,2,3,4,5]: print i**2 Good: for i in range(6): pri ...

  6. 1.多线程-NSThread

    1.在主线程执行多次NSLog模拟耗时操作 结果,卡住主线程 解决方案: performSelectorInBackground让程序在后台执行   2.pthread的使用 开辟子线程,执行一个函数 ...

  7. Python语言十分钟快速入门

    Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. AD:[51CTO技术沙龙]移动时代 ...

  8. 如何运用TurboDemo创建视频示例

    TurboDemo不仅可以速抓取屏幕截图,而且可高效制作出时尚美观的介绍.演示动画.软件模拟以及使用说明.下面的例子将会告诉使用者们如何分步创建一个视频示例,帮助使用者们快速的上手: 1.开启Turb ...

  9. linux 使用 rz 和 sz 命令

    linux系统 root权限 lrzsz安装包 ①. 安装 编译安装 root 账号登陆后,依次执行以下命令: tar zxvf lrzsz-.tar.gz cd lrzsz- ./configure ...

  10. Linux的常用命令

    1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如:   cd /root/Docements # 切 ...