- 浏览: 33099 次
- 性别:
- 来自: 上海
最新评论
Touchevent 中,返回值是 true ,则说明消耗掉了这个事件,返回值是 false ,则没有消耗掉,会继续传递下去,这个是最基本的。
-------------------------------------------------------
以前写 android ,对事件的处理没有太深入,只是简单的 onTouchEvent 就 ok 了,现在写的 UI ,很多自定义组件,父 view 和子 view 都需要接收事件,然后处理。如果不弄明白它的事件传递机制,很难拥有好的用户体验。
Touchevent 中,返回值是 true ,则说明消耗掉了这个事件,返回值是 false ,则没有消耗掉,会继续传递下去,这个是最基本的。
在 View 中跟 Touch 相关的事件有 dispatchTouchEvent , interceptTouchEvnet , onTouchEvent 三种。
dispatchTouchEvent 是负责分发事件的,事件从 activity 传递出来之后,最先到达的就是最顶层 view 的 dispatchTouchEvent ,然后它进行分发。
dispatchTouchEvent 如果返回 false ,则交给这个 view 的 interceptTouchEvent 方法来决定是否要拦截这个事件。
如果 interceptTouchEvent 返回 true ,也就是拦截掉了,则交给它的 onTouchEvent 来处理。
如果interceptTouchEvent返回 false ,那么就传递给子 view ,由子view 的 dispatchTouchEvent 再来开始这个事件的分发。
如果事件传递到某一层的子 view 的 onTouchEvent 上了,这个方法返回了 false ,那么这个事件会从这个 view 往上传递,都是 onTouchEvent 来接收。而如果传递到最上面的 onTouchEvent 也返回 false 的话,这个事件就会“消失”,而且接收不到下一次事件。(我说的一次事件指的是 down 到 up 之间的一系列事件)
我画了个图,见附件。
总结一下,如果这一次事件没有人消耗掉,则系统不会给你下一次事件,因为他会认为你这次的事件阻塞了,没必要给下一次。onTouchEvent如果不消耗的话,会从子view传递到父view。
refer:http://www.huomo.cn/developer/article-15ca7.html
发表评论
-
Activity
2012-07-03 15:11 0Activity生命周期,回调函数 -
Android4.1
2012-06-28 18:05 827Faster, Smoother, More Responsi ... -
使用GIT在GITHUB上拉取项目
2012-06-14 16:40 2687windows环境下: 1.安装GIT 2.设置GIT使用 ... -
Android系统架构图
2012-02-17 22:53 0Android系统架构图 -
Android Intent
2012-02-15 15:35 710android Intent 表示软件开放的接口,用于标 ... -
ADB
2012-02-13 18:33 8031. adb uninstall package_name ... -
Android Http Post Files and Parameters
2012-02-13 17:41 0Android Http Post Files and Par ... -
Android SDK源码下载
2011-11-25 17:21 10611. Android SDK源码下载: ... -
产品设计
2011-11-24 21:07 1026近半年在做Android产品开发,结合项目实际,重点说说产品设 ... -
To Do List
2011-11-21 00:05 2321DONELIST && TODOLIST ... -
Java性能检测工具-MAT的使用
2011-09-07 15:26 1170在android开发中,可以使用MAT来检测应用的内存消耗,m ... -
自定义View
2011-09-02 11:44 985自定义view在android开发中,用的很多。 先参考以下 ... -
android划屏效果
2011-08-29 16:27 1761android划屏效果demo: ... -
scale动画
2011-08-19 15:11 741scale动画 <scale android:i ... -
Android Logcat和Log文件处理
2011-08-10 11:13 14311.Android Logcat工具的一般查看 在Ec ... -
Android文件系统结构
2011-08-10 10:56 1144Android文件系统结构: 详见:http://ww ... -
android tools之traceview的使用
2011-08-09 17:54 848android tools之traceview的使用 http ... -
hierarchyviewer的使用
2011-08-09 16:31 1960hierarchyviewer工具用来查看android UI ... -
Android屏幕分辨率
2011-07-29 16:43 735尽量使用对齐方式布局; 尽量使用dp来定义padding ma ...
相关推荐
Android中展示Unity3D模型
7. **触摸和手势控制**: Android提供了一系列的触摸事件监听器,如`OnTouchListener`,你可以利用这些接口响应用户的触摸操作,改变相机视角或模型的属性,实现3D交互。 8. **性能优化**: 移动设备的硬件资源有限,...
Android通过opengl显示obj模型
基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+...
在“Android游戏FBX文件(T54坦克模型)”中,我们看到的是一个专为Android平台设计的游戏资源,包含了T54坦克的3D模型,以及相关的贴图和动画数据。 1. **3D模型**:T54坦克模型是这个FBX文件的核心部分,它由多个...
基于Android实现人脸表情识别的tflite模型源码+模型+项目说明.zip基于Android实现人脸表情识别的tflite模型源码+模型+项目说明.zip基于Android实现人脸表情识别的tflite模型源码+模型+项目说明.zip基于Android实现...
部署yolov10的ncnn模型到android源码+模型+项目说明.zip 部署yolov10的ncnn模型到android源码+模型+项目说明.zip 部署yolov10的ncnn模型到android源码+模型+项目说明.zip 部署yolov10的ncnn模型到android源码+模型+...
本教程将深入探讨如何在Android环境中实现自定义的触控事件,即“发送模型基于安卓点触事件”。 一、Android触摸事件基础 Android的触摸事件主要由MotionEvent类表示,它包含了触摸屏幕的各种动作,如ACTION_DOWN...
Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型...
《Android-EasyShow3D:基于OpenGLES的3D模型展示框架详解》 在移动设备上实现3D模型的展示已经成为许多应用不可或缺的功能,尤其是在游戏、设计、教育等领域。Android-EasyShow3D就是这样一款专为Android平台设计...
基于Android运行人脸表情识别的tflite模型源码+项目说明.zip基于Android运行人脸表情识别的tflite模型源码+项目说明.zip基于Android运行人脸表情识别的tflite模型源码+项目说明.zip基于Android运行人脸表情识别的tf...
在Linux 2.6版本中,设备驱动模型引入了/dev/input/目录下的event接口,用于处理各种输入设备的事件。每个event接口对应一个设备,编号从0到7(也可能更多,取决于系统的实际设备数量)。例如,/dev/input/event0...
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...
《tensorflow训练好模型移植到android》教程,共66页pdf格式文档(幻灯片形式),讲解清楚,能很快实现。涉及两个例子,第一个是将Tensor flow的实例编译成APK,安装运行到Android客户端,立即可以使用;第二个是...
android机器人obj3D模型
在本文中,我们将深入探讨如何在Qt for Android环境中利用QGestureEvent处理触摸手势事件。Qt是一个跨平台的应用程序开发框架,支持多种操作系统,包括Android。它提供了丰富的功能,使开发者能够在移动设备上创建...
自己测试通过小例子,STL格式的3D模型,在Android里面通过触摸旋转的例子
一个很实用的test,检测USB的插拔事件