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. 一个python的计算熵(entropy)的函数

    计算熵的函数: # -*- coding: utf-8 -*- import math #the function to calculate entropy, you should use the p ...

  2. Node.js中的Session,不要觉得简单哦。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应 ...

  3. windows2008 c盘清理

    可以删除 C:\inetpub\logs\LogFiles 里面的日志文件

  4. jquery mobile tabs

    https://github.com/groovetrain/jQuery.mobile-Tabs

  5. NodeJS 调试工具(node-inspector)

    node-inspector是基于Chrome的调试工具. 安装: npm install -g node-inspector 1.启动node-inspector来监听node.js的debug调试 ...

  6. 测试机安装fd-server问题记录

    今天在239测试机上安装了fd-server来代替apache,汇总下遇到的问题和解决方法. 1. 安装git时使用yum安装,命令 yum install git 2. 启动fd-server之前要 ...

  7. hdu 5901 Count primes

    题意: 计数区间$[1, n](1 \leq n \leq 10^{11})$素数个数. 分析: 这里只介绍一种动态规划的做法. 首先要说一下[分层思想]在动态规划中非常重要,下面的做法也正是基于这一 ...

  8. Mark Down 尝试

    Hello World iawriter sublime text

  9. 关于去除Eclipse对JavaScript的验证

    关于去除Eclipse对JavaScript的验证 在我们使用大量JavaScript作为一些UI或其他组件来使用时,很多情况下,明明引用的这些JavaScript是可以正常使用的,但Eclipse却 ...

  10. css样式增加&改变颜色

    .listyle{ color:blue; background-color:red /* background-color:"#006633" */ } .intro{ font ...