让你分分钟明白onTouchEvent事件分发
首先确定有三种,由内向外依次为:
1、View自己的onTouchEvent
2、ViewGroup的onTouchEvent,由于要管理它的子View的onTouchEvent,所以多了个onInterceptTouchEvent(鼓励重载这个而不是dispatchTouchEvent,因为后者是对ViewGroup共性的提取,前者才是针对个例)
3、Activity的onTouchEvent
三者都是先处理setOnTouchEvent的onTouch事件,返回true表示不想下传递,就不进入到onTouchEvent中了
先说ViewGroup的onInterceptTouchEvent,两种情况:
①、返回值为True,代表拦截这次事件,直接进入到ViewGroup的onTouchEvent中,就不会进入到View的onTouchEvent了
②、返回值为False,代表不拦截这次事件,不进入到ViewGroup的onTouchEvent中,直接进入到View的onTouchEvent中
再说三者的onTouchEvent:
①、View的onTouchEvent返回为false表示view处理完onTouchEvent后不消费这次事件,那么这个事件就会继续传递到他的上一层ViewGroup的onTouchEvent事件中,返回true的话就传递完毕,进入不到ViewGroup的onTouchEvent中了
②、ViewGrop的onTouchEvent返回为false表示这个ViewGroup处理完onTouchEvent后不消费这次事件,这个事件就会继续传递到activity的onTouchEvent中,返回为true的话就传递完毕,进入不到activity的onTouchEvent中了
③、activity的onTouchEvent,就这样吧 `(*∩_∩*)′
总之,如果最里层的返回false就会交给他的上一层处理,否则就会消费这次事件,停止传递,over!
转载于:https://www.cnblogs.com/gyzboy/p/4518188.html
让你分分钟明白onTouchEvent事件分发相关推荐
- Android:30分钟弄明白Touch事件分发机制
Touch事件分发中只有两个主角:ViewGroup和View.Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理. View在 ...
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- 随我一起慢慢揭开Andoird里事件分发机制的神秘面纱
转载好文章: http://blog.csdn.net/chunqiuwei/article/details/41084921 学了这么久的Android,面试也常被问到事件分发机制,但总感觉对这个机 ...
- Android进阶知识:事件分发与滑动冲突(一)
1.前言 Android学习一段时间,需求做多了必然会遇到滑动冲突问题,比如在一个ScrollView中要嵌套一个地图View,这时候触摸移动地图或者放大缩小地图就会变得不太准确甚至没有反应,这就是遇 ...
- 源码阅读分析 View的Touch事件分发
其实 Android 事件分发机制在早几年一直都困扰着我,那时候处理事件分发的自定义 View 脑子都是一片白,老感觉处理不好.后来自己看了 android 源码,也阅读了很多大牛的文章才算彻底明白, ...
- 【Android】Touch事件分发
题外话: /*** A ViewGroup is a special view that can contain other views* (called children.) The view gr ...
- Android的事件分发
1. Touch事件和绘制事件的异同之处 Touch事件和绘制事件很类似,都是由ViewRoot派发下来的,但是不同之处在绘制事件是由应用中的某个View发起请求,一层一层上传到ViewRoot,再有 ...
- Android中事件分发机制的总结
原文出处:http://blog.csdn.net/jdsjlzx/article/details/52355249 事件传递虽然算不上某个单独的知识点,但是在实际项目开发中肯定会碰到,如果不明白其中 ...
- Android View 事件分发机制详解
想必很多android开发者都遇到过手势冲突的情况,我们一般都是通过内部拦截和外部拦截法解决此类问题.要想搞明白原理就必须了解View的分发机制.在此之前我们先来了解一下以下三个非常重要的方法: di ...
最新文章
- Transformer新玩法登Nature子刊
- 弱监督语义分割--Object Region Mining with Adversarial Erasing
- php 将内容中的图片的域名,php给编辑器中的图片地址添加域名
- The substring() Method in JDK 6 and JDK 7 (jdk6中的substring()会造成内存泄漏)
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- postgresql数据库的备份与恢复
- MySQL之运算符和函数
- 如何升级浏览器_前谷歌员工爆料:谷歌工程师们是如何合谋“杀死”IE6浏览器的...
- pre2-flink单机部署与job提交
- kratos的返回值问题与错误返回问题
- Pycharm回车之后不能换行或不能缩进的解决方法
- SAP License:大话三国之企业点将
- EMC变得更有中国味儿
- 更改Tomcat默认目录+端口+设置缺省网页的方法
- Mac 安装 Grunt
- 计算机导论以python为舟_计算机科学导论
- 前端技术规划与战略:2022
- ubuntu18.04安装MPV视频播放器
- 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场...
- android手机舆情分析,基于Android平台的环境公共舆情监督系统研究
热门文章
- AgileEAS.NET平台开发实例-药店系统-数据库还原
- 基于.NET的图表控件解决方案
- Samba与Vsftpd结合在企业中的应用
- 在ASP.NET中重写URL 方法三:在IIS7中使用HttpModule 实现无扩展名的URL重写
- LeetCode.961-2N数组中N次重复的元素(N-Repeated Element in Size 2N Array)
- oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析
- springboot发送http请求
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- Bazel发布Beta版本,增加对Groovy、Rust和Scala语言的支持
- 把握现在才是最重要的