Android事件分发机制(一)
Android下与Touch事件相关的方法有三个dispatchTouchEvent(),onInterceptTouchEvent()和onTouchEvent(),能够对这三个方法进行响应的控件包括ViewGroup,View和Activity。其中ViewGroup和View对Touch事件的三个方法均能响应,Activity对onInterceptTouchEvent()不能做出响应,当然,View对dispatchTouchEvent()和onInterceptTouchEvent()做出响应的前提是在View中有添加子view,如果当前的View已经是最小的单位了,则事件不能向下分发与拦截,即不能响应dispatchTouchEvent()和onInterceptTouchEvent()方法
Touch事件分析
事件的分发:dispatchTouchEvent(MotionEvent ev)
- 返回值为true:事件会分发给当前的View,并由当前view的dispatchTouchEvent()进行消费,且事件不再往下传递
- 返回值为false:
1:如果当前view的事件来自Activity,则事件会返回给Activity的onTouchEvent()进行消费
- 如果返回系统默认的super.dispatchTouchEvent(event ev):事件会自动分发给当前view的onInterceptTouchEvent()方法进行处理
事件的拦截:onInterceptTouchEvent(MotionEvent ev)
- 返回值为true:表示当前view对该触摸事件进行拦截,并交由当前view的onTouchEvent()方法进行处理;
- 返回值为false:表示当前view对该触摸事件不进行拦截,将触摸事件继续往下传递,交由子控件的dispatchTouchEvent()继续对事件进行分发。
- 返回值为系统默认的super.onInterceptTouchEvent(Event ev):事件默认会被拦截,并交由当前View的onTouchEvent()进行处理
事件的响应:onTouchEvent(MotionEvent ev)
- 如果事件传到了当前view的onTouchEvent,而该方法返回了false;表示当前的view对该事件不进行处理,该事件会向上传递并由上层view的onTouchEvent()来对事件进行处理,如果上层view的onTouchEvent()继续返回了false,则表示事件不消费,事件会消失
- 如果事件传到了当前的view的onTouchEvent,且该方法返回了true,表示当前的view对该事件进行处理
- 如果返回的是系统默认的super.onTouchEvent(ev),则对事件的处理逻辑与返回false时是相同的
Android事件分发机制(一)相关推荐
- android触摸事件分发,Android 事件分发机制
Android 事件分发机制一直让人头痛,之前也是面向 GitHub 编程得过且过.今天下定决心了解一下,以便后面自己定制 View 效果.Android 触摸事件有三个基本类型:ACTION_DOW ...
- 【转】Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761 记得在前面的文章中,我带大家一起从源码的角度分析了Android中Vi ...
- 浅谈Android事件分发机制
在Android实际开发过程中经常会遇到View之间的滑动冲突,如ScrollView与Listview.RecyclerView之间的嵌套使用.在很好的解决此类问题之前,我们应深入的了解Androi ...
- Android 事件分发机制
Android 事件分发机制 demo验证: https://blog.csdn.net/hty1053240123/article/details/77866302 目录 1.基础认知 2.事件 ...
- Android事件分发机制:基础篇:最全面、最易懂
如何提升安卓水平?安卓开发者必须了解的事件分发机制. 最全面.最易懂的形式来讲解Android事件分发机制. 0. 前言 鉴于安卓分发机制较为复杂,故分为多个层次进行讲解,分别为基础篇.实践篇与高级篇 ...
- Android 系统(199)---Android事件分发机制详解
Android事件分发机制详解 前言 Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全.思路不清晰.无源码分析. ...
- android系统(8)---android事件分发机制
前言 Android事件分发机制是每个Android开发者必须了解的基础知识 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全.思路不清晰.无源码分析.简单问题复杂化等等 今天 ...
- 一篇文章彻底搞懂Android事件分发机制
本文讲的是一篇文章彻底搞懂Android事件分发机制,在android开发中会经常遇到滑动冲突(比如ScrollView或是SliddingMenu与ListView的嵌套)的问题,需要我们深入的了解 ...
- Android 事件分发机制分析及源码详解
Android 事件分发机制分析及源码详解 文章目录 Android 事件分发机制分析及源码详解 事件的定义 事件分发序列模型 分发序列 分发模型 事件分发对象及相关方法 源码分析 事件分发总结 一般 ...
- 【朝花夕拾】Android自定义View篇之(六)Android事件分发机制(中)从源码分析事件分发机制...
前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/11039252.html]谢谢! 在上一篇文章[[朝花夕拾]Android自定义View篇之(五 ...
最新文章
- MyBatis动态SQL之 set 和 trim标记的使用示例
- linux时序图工具,在Linux系统下通过IAuto.deb或星火商店安装IAuto流程图工具
- Python报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte s
- nodejs的调试debug
- Linux中的15个‘echo’ 命令实例
- 爱奇艺PPS如何登陆账号
- mysql下载安装教程win7_win7系统安装MySQL软件的详细步骤
- 转载:.NET Memory Leak: XmlSerializing your way to a Memory Leak
- shell_之_find(查找)
- Runtime底层原理探究(二) --- 消息发送机制(慢速查找)
- Spring Boot 如何使用 Redis 进行 API 防刷限流?
- mapreduce实现矩阵相乘
- 人工智能专业就业有哪些岗位方向
- 虚拟串口 VSPD 的使用
- 三菱FX1S PLC控制伺服电机小结
- 生信入门(二)fastqc 生成的.html解读
- Win10休眠后蓝牙键盘无法唤醒怎么办?
- JavaScript 制作百度输入预测功能
- 如何使用VBA从Internet下载文件
- js获取当前日期的下周一