- 浏览: 29289 次
- 性别:
- 来自: 上海
最新评论
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 786Faster, Smoother, More Responsi ... -
使用GIT在GITHUB上拉取项目
2012-06-14 16:40 2637windows环境下: 1.安装GIT 2.设置GIT使用 ... -
Android系统架构图
2012-02-17 22:53 0Android系统架构图 -
Android Intent
2012-02-15 15:35 669android Intent 表示软件开放的接口,用于标 ... -
ADB
2012-02-13 18:33 7401. 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 10111. Android SDK源码下载: ... -
产品设计
2011-11-24 21:07 979近半年在做Android产品开发,结合项目实际,重点说说产品设 ... -
To Do List
2011-11-21 00:05 2280DONELIST && TODOLIST ... -
Java性能检测工具-MAT的使用
2011-09-07 15:26 1085在android开发中,可以使用MAT来检测应用的内存消耗,m ... -
自定义View
2011-09-02 11:44 922自定义view在android开发中,用的很多。 先参考以下 ... -
android划屏效果
2011-08-29 16:27 1723android划屏效果demo: ... -
scale动画
2011-08-19 15:11 712scale动画 <scale android:i ... -
Android Logcat和Log文件处理
2011-08-10 11:13 13961.Android Logcat工具的一般查看 在Ec ... -
Android文件系统结构
2011-08-10 10:56 1113Android文件系统结构: 详见:http://ww ... -
android tools之traceview的使用
2011-08-09 17:54 815android tools之traceview的使用 http ... -
hierarchyviewer的使用
2011-08-09 16:31 1908hierarchyviewer工具用来查看android UI ... -
Android屏幕分辨率
2011-07-29 16:43 708尽量使用对齐方式布局; 尽量使用dp来定义padding ma ...
相关推荐
浅谈android线程模型
Android通过opengl显示obj模型
从不同角度阐述了android事件传递方法和多线程的处理模型
Android中使用JPCT+GLSurfaceView的方式加载三维模型文件,Android版本在5.0以上。
Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型...
Android中展示Unity3D模型
基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+...
3D指南针效果 利用OpenGL绘制简单stl格式(未带纹理)的3D模型
这是一个Android MVP模型良好的架构设计,同时也做了Android和HTML 5交互架构,用到了RxJava+Retrofit+MVP+泛型缩减mvp+模板模式+命令模式+观察者模式+管理者模式 +简单工厂模式
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...
NULL 博文链接:https://hao3100590.iteye.com/blog/1267294
android机器人obj3D模型
自己测试通过小例子,STL格式的3D模型,在Android里面通过触摸旋转的例子
一个很实用的test,检测USB的插拔事件
自己写的触控事件
这是Qt for Android的测试工程,主要测试QT的触摸手势事件
ANDROID JNI下的EPOLL模型
Android端利用OpenGL ES显示模型数据,涉及矩阵变换,包括投影矩阵、模型矩阵的应用等
Android高级进阶十四 Android OpenGL粒子模型源码
《tensorflow训练好模型移植到android》教程,共66页pdf格式文档(幻灯片形式),讲解清楚,能很快实现。涉及两个例子,第一个是将Tensor flow的实例编译成APK,安装运行到Android客户端,立即可以使用;第二个是...