onInterceptTouchEvent / onTouchEvent响应事件的详析
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()
转载于:https://www.cnblogs.com/zhy7104/p/6023961.html
onInterceptTouchEvent / onTouchEvent响应事件的详析相关推荐
- Android事件流程详解
Android事件流程详解 网络上有不少博客讲述了android的事件分发机制和处理流程机制,但是看过千遍,总还是觉得有些迷迷糊糊,因此特地抽出一天事件来亲测下,向像我一样的广大入门程序员详细讲述an ...
- winform 让他间隔一段时间 执行事件 且只执行一次_Redis 事件机制详解
点击上方"程序员历小冰",选择"置顶或者星标" 你的关注意义重大! Redis 采用事件驱动机制来处理大量的网络IO.它并没有使用 libevent 或者 li ...
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
[转]http://blog.csdn.net/guitk/article/details/7057155 onInterceptTouchEvent用于改变事件的传递方向.决定传递方向的是返回值,返 ...
- Android-解决ViewFlipper与ScrollView滑动响应事件拦截的问题【转】
2019独角兽企业重金招聘Python工程师标准>>> 最近在做一个简单的展示界面时,遇到了一个比较棘手的问题.由于要展示多项内容,所以使用ViewFlipper作为水平滑动容器:而 ...
- Redis 事件机制详解
Redis 采用事件驱动机制来处理大量的网络IO.它并没有使用 libevent 或者 libev 这样的成熟开源方案,而是自己实现一个非常简洁的事件驱动库 ae_event. Redis中的事件驱动 ...
- JavaScript(js)事件冒泡、事件捕获、事件委托详解
JavaScript(js)事件冒泡.事件捕获.事件委托详解 1.什么是事件 JavaScript和HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间.可以使用监听 ...
- 详析像增强器的构造及作用——专为微弱信号探测而生
详析像增强器的构造及作用--专为微弱信号探测而生 CCD.CMOS相机常备用来拍摄发光影像.然而受到效率.噪声的限制,在微弱光环境下,普通相机很难实现有效的成像,这些场景包括: - 微光夜视,即环境光 ...
- svg鼠标响应事件的四种方法(其中两种可支持火狐)
svg鼠标响应事件的四种方法 鼠标响应事件的四种方法,以click事件为例. Mouse Events - SMIL <?xml version="1.0" encoding ...
- 委托与事件代码详解与(Object sender,EventArgs e)详解
委托与事件代码详解 using System; using System.Collections.Generic; using System.Text; namespace @Delegate //自 ...
最新文章
- PHP的一种缓存方案静态化
- SPOJ - BITDIFF: Bit Difference [神妙の预处理]
- lucene 学习一
- ActiveMQ 消息持久化
- word万维计算机教程,计算机课件word文档.doc
- 旅行报告:JavaOne 2013 –重归荣耀
- 解决ssh空闲一段时间后自动断开
- 菜鸟学Linux 第093篇笔记 keepalived
- Bailian4144 畜栏保留问题【贪心】
- tkinter教程_Tkinter教程–第2部分
- 解读2022城市大脑首批三项标准
- 数据同步工具:Canal
- 百度搜索指数查询工具
- 【优化算法】改进的侏儒猫鼬优化算法(IDMO)【含Matlab源码 2314期】
- 膨胀卷积(空洞卷积 dilated convolution)
- 微信网页授权校验文件
- java怎么往list里存int,Java中List、Integer[]、int[] 的相互转换
- 智能定位系统实验报告
- 【Mybatis】Mybatis将String类型的0存到数据库中的number类型字段中,变成了空;
- 数字电路学习——三极管的使用
热门文章
- python接口自动化(七)--状态码详解对照表(详解)
- nginx 禁止运行php,Nginx、Apache、Lighttpd禁止目录执行php配置示例
- 怎样退出python的交互环境_python交互界面的退出方法
- Guava的介绍与使用示例
- [Spring+Hibernate系列]2.项目介绍与首个MVC实例
- php正则循环,PHP正则解析多重循环模板示例
- 在保护继承中基类的共有成员_C++面向对象:C++ 继承
- Chika and Friendly Pairs(莫队+树状数组+离散化+预处理上下界)
- java在linux生成pdf文件,从 Java 应用程序动态生成 PDF 文件
- 解析单句sql_SqlParser 一个利用正则表达式解析单句SQL的类