以前写
android
,对事件的处理没有太深入,只是简单的
onTouchEvent
就
ok
了,现在写的
UI
,很多自定义组件,父
view
和子
view
都需要接收事件,然后处理。如果不弄明白它的事件传递机制,很难拥有好的用户体验。
Touchevent
中,返回值是
true
,则说明消耗掉了这个事件,返回值是
false
,则没有消耗掉,会继续传递下去,这个是最基本的。
在
View
中跟
Touch
相关的事件有
dispatchTouchEvent
,
interceptTouchEvnet
,
onTouchEvent
三种。
dispatchTouchEvent
是负责分发事件的,事件从
activity
传递出来之后,最先到达的就是最顶层
view
的
dispatchTouchEvent
,然后它进行分发,如果返回
false
,则交给这个
view
的
interceptTouchEvent
方法来决定是否要拦截这个事件,如果
interceptTouchEvent
返回
true
,也就是拦截掉了,则交给它的
onTouchEvent
来处理,如果
interceptTouchEvent
返回
false
,那么就传递给子
view
,由子
view
的
dispatchTouchEvent
再来开始这个事件的分发。
如果事件传递到某一层的子
view
的
onTouchEvent
上了,这个方法返回了
false
,那么这个事件会从这个
view
往上传递,都是
onTouchEvent
来接收。而如果传递到最上面的
onTouchEvent
也返回
false
的话,这个事件就会“消失”,而且接收不到下一次事件。(我说的一次事件指的是
down
到
up
之间的一系列事件)
我画了个图,见附件。
总结一下,如果这一次事件没有人消耗掉,则系统不会给你下一次事件,因为他会认为你这次的事件阻塞了,没必要给下一次。onTouchEvent如果不消耗的话,会从子view传递到父view。
- 大小: 36.2 KB
分享到:
相关推荐
Android中展示Unity3D模型
基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+模型+项目说明.zip基于yolov9 ncnn模型部署到android源码+...
7. **触摸和手势控制**: Android提供了一系列的触摸事件监听器,如`OnTouchListener`,你可以利用这些接口响应用户的触摸操作,改变相机视角或模型的属性,实现3D交互。 8. **性能优化**: 移动设备的硬件资源有限,...
Android通过opengl显示obj模型
通过以上步骤,你就能在Android应用中成功展示STL 3D模型,并实现具有特定效果的3D指南针了。在实际开发过程中,你可能还需要考虑性能优化、错误处理以及用户交互等方面的问题,但这些基础步骤将为你提供一个良好的...
本教程将深入探讨如何在Android环境中实现自定义的触控事件,即“发送模型基于安卓点触事件”。 一、Android触摸事件基础 Android的触摸事件主要由MotionEvent类表示,它包含了触摸屏幕的各种动作,如ACTION_DOWN...
然而,在Android应用开发过程中,理解和掌握线程模型对于构建高性能、响应迅速的应用至关重要。 #### Android的线程模型概览 Android采用了一种基于事件驱动的单线程模型。当应用程序启动时,系统会自动创建一个...
部署yolov10的ncnn模型到android源码+模型+项目说明.zip 部署yolov10的ncnn模型到android源码+模型+项目说明.zip 部署yolov10的ncnn模型到android源码+模型+项目说明.zip 部署yolov10的ncnn模型到android源码+模型+...
总之,Android事件处理模型通过Input子系统实现了高效的事件分发,而多线程技术则保证了应用的流畅运行和用户体验。理解和掌握这些机制对于开发高质量的Android应用至关重要。开发者需要根据具体需求选择合适的事件...
基于Android实现人脸表情识别的tflite模型源码+模型+项目说明.zip基于Android实现人脸表情识别的tflite模型源码+模型+项目说明.zip基于Android实现人脸表情识别的tflite模型源码+模型+项目说明.zip基于Android实现...
本文将深入探讨Android游戏中的FBX文件,特别是针对“T54坦克模型”的具体应用。 FBX是由Autodesk公司开发的一种数据格式,它允许游戏开发者在不同的3D建模软件(如3ds Max、Maya等)之间导入和导出模型、纹理、...
在本文中,我们将深入探讨如何将YOLOv8模型集成到Android端的Demo应用程序中,以便实现图像识别功能。YOLO(You Only Look Once)是一种实时目标检测系统,以其高效和准确性而闻名。YOLOv8是YOLO系列的最新版本,它...
Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型设计的BeatBox程序源码Android开发基于MVVM模型...
在Android开发中,数据模型的传递是一个非常关键的环节,特别是在处理复杂的数据结构时。本文将探讨如何在Android应用程序中有效地传递和管理复杂数据模型,同时结合提供的标签"源码"和"工具",我们将深入解析相关的...
在Android开发中,事件处理是UI交互的核心部分。本文将深入探讨Android事件模型,特别是`onTouchEvent`和`interceptTouchEvent`的关系,帮助开发者更好地理解这两个方法如何协同工作以实现复杂的触摸事件处理。 ...
在Linux 2.6版本中,设备驱动模型引入了/dev/input/目录下的event接口,用于处理各种输入设备的事件。每个event接口对应一个设备,编号从0到7(也可能更多,取决于系统的实际设备数量)。例如,/dev/input/event0...
在这个APP模型中,Glide被用来加载音乐专辑封面和其他图形资源,确保了良好的用户体验。 3. **SwipeRefreshLayout**:SwipeRefreshLayout是Android提供的一个刷新布局,用户可以通过下拉手势来触发刷新操作。在网易...
《Android-EasyShow3D:基于OpenGLES的3D模型展示框架详解》 在移动设备上实现3D模型的展示已经成为许多应用不可或缺...通过这个框架,我们可以轻松地将各种3D模型融入到Android应用中,提升应用的视觉效果和互动性。
基于Android运行人脸表情识别的tflite模型源码+项目说明.zip基于Android运行人脸表情识别的tflite模型源码+项目说明.zip基于Android运行人脸表情识别的tflite模型源码+项目说明.zip基于Android运行人脸表情识别的tf...