`
jguangyou
  • 浏览: 375800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对View组件touch事件响应的理解

阅读更多
Android响应View组件的touch事件通常是采用重写onTouch(MotionEvent event)方法,或者是setOnTouchListener()设置listener.View组件的touch事件的响应是通过调用dispatchTouchEvent(MotionEvent event)方法分发的,当touch listener为null或者它返回的结果是false时,就调用onTouch()方法,所以touch listener的优先级要比onTouch()方法的高。当onTouch()方法返回false时,才会触发view组件parent的touch事件响应。

    ViewGroup的dispatchTouchEvent()方法有所不同,它会对touch事件进行解析,通过调用onInterceptTouchEvent(MotionEvent event), 若返回false时会将事件分发给响应的子组件,否则自己响应这个touch事件,默认的为false, 可以对这个方法进行重写来拦截touch事件。因此,view组件响应事件的机制是,touch事件从view组件树顶层一直分发下去到最底层的组件上,当组件没有consume这个事件时会传回到上一级进行处理,直到返回到最底层扔出,这会最终被Activity进行处理,因为事件最开始分发的地方是从Activity开始的,它会调用getWindow().superDispatchTouchEvent(ev)方法把事件分发给组件树,若果view组件树没有处理则最终会调用自己的onTouch(MotionEvent event)方法。[/size][/size]
分享到:
评论

相关推荐

    两个重叠组件触摸事件冲突解决

    通常,位于上层的组件会先接收到事件,而下层组件则可能无法正确响应。为了解决这个问题,我们可以采取以下策略: 1. **覆盖onTouchEvent()**:对于每个组件,我们可以在它们各自的`onTouchEvent()`方法中进行处理...

    Android Touch事件传递机制解析

    Android的Touch事件传递遵循“父子组件”的顺序,即事件会从根ViewGroup开始,逐级向下传递,直到找到能消费该事件的View。这个过程可以分为两个阶段:Dispatch Touch事件和OnTouchEvent。 1. Dispatch Touch事件...

    Android中Touch事件的传递

    Android中的Touch事件传递是一个涉及多个组件和层次的过程。为了深刻理解这一过程,我们首先需要了解Activity界面的布局结构,然后深入到事件的传递与处理流程中,最后通过流程图来展示整个事件的传递顺序。 在...

    通过scrollview响应父类的touch事件

    在Android开发中,ScrollView是一...总之,通过自定义ScrollView并重写onTouchEvent()方法,我们可以让ScrollView响应父类的touch事件,从而实现更复杂的交互逻辑。这在设计具有丰富用户交互的Android应用时非常有用。

    sencha touch动态加载组件

    通过学习和理解这些代码,你可以更好地掌握如何在实际项目中应用动态加载策略,提升Sencha Touch应用的性能和用户体验。 总之,Sencha Touch的动态加载组件技术对于优化移动应用性能至关重要。通过合理地运用上述...

    Touch事件案例

    "Touch事件案例"主要关注的是`onInterceptTouchEvent`和`onTouchEvent`这两个方法的调用时序,它们是处理触摸事件的关键组件,尤其在复杂的布局结构中,理解它们的工作原理对于优化用户界面和交互至关重要。...

    Android Touch Test APK 源码

    通过对这个方法的实现进行研究,可以了解如何在复杂布局中协调各个组件的触摸响应。 总的来说,`Android Touch Test APK 源码`是一个宝贵的资源,可以帮助开发者深入了解Android触摸事件的生命周期、分发机制以及...

    android touch demo

    `android touch demo`是一个用于演示Android系统中触摸事件处理的示例项目,通过这个项目,我们可以深入理解Android触摸事件的工作原理以及如何在应用中实现对触摸事件的响应。 触摸事件主要由三类基本事件组成:...

    touch-docs-2.2.1.zip(senchaTouch 离线API参考文档)

    这个压缩包“touch-docs-2.2.1.zip”包含了Sencha Touch 2.2.1版本的离线API参考文档,对于深入理解和使用Sencha Touch进行开发具有极大的帮助。 首先,让我们详细了解一下Sencha Touch 2.2.1的核心特性: 1. **...

    sencha touch 登陆界面

    Sencha Touch 是一款专为移动设备设计的JavaScript框架,它提供了丰富的组件库和强大的数据管理功能,用于...对于初学者来说,理解这一过程有助于更好地掌握Sencha Touch的架构和组件使用,从而进一步提升开发能力。

    sencha touch项目源码

    Sencha Touch 是一款专为移动设备设计的前端框架,它提供了丰富的组件和API,用于构建交互式的、响应式的Web应用程序。这个项目源码是基于Sencha Touch开发的一个实例,通过研究这个项目,我们可以深入理解Sencha ...

    仿ViewPager,事件分发应用

    `onInterceptTouchEvent`通常用于父View需要在子View之前对事件作出响应的情况,比如在ViewPager中,当用户滑动时,ViewPager可能需要拦截这些滑动事件以实现页面的切换。`onTouchEvent`则是每个View处理具体触摸...

    sencha-touch-1.0.1a.zip_Sencha Touch _sencha touch api_touch

    深入学习Sencha Touch 1.0.1a,你将掌握如何创建响应式的布局、实现动态数据加载、处理用户触摸事件等技能。同时,这也为你进一步学习更新的Sencha Touch 版本或相关的Web开发技术打下基础。对于想要从事移动Web开发...

    touchGFX学习笔记.docx

    3. **Presenter**(呈现器):作为Model和View之间的桥梁,Presenter负责接收来自Model的数据,并将这些数据转换为View可以理解的形式,同时接收View的事件并处理。在TouchGFX中,Presenter类通常由开发者编写,用于...

    Sench Touch例子

    3. **控制器(Controller)**: 控制器作为模型和视图之间的桥梁,处理用户交互,响应事件,并协调模型和视图的操作。在Sencha Touch中,控制器可以监听视图的事件,调用模型的方法,或者更改其他视图的状态。 在这...

    android绘图 自定义组件

    - onTouchListener:添加到View上,监听触摸事件,根据MotionEvent进行响应,如在TouchDemo中,可能实现拖动、缩放、旋转等操作。 - 触摸事件分发:ViewGroup通过onInterceptTouchEvent决定是否拦截触摸事件,然后...

    安卓Android源码——touch1.rar

    3. UI事件处理:Android的UI框架主要由`View`和`ViewGroup`构成,它们处理触摸事件的传递和响应。在`android.view.View`类中,`onTouchEvent()`方法是处理触摸事件的核心,而`MotionEvent`对象则携带了事件的具体...

    android事件分发机制Demo

    在Android开发中,事件分发机制是理解和优化用户交互界面不可或缺的部分。...通过实践`android事件分发机制Demo`,你可以直观地看到事件如何在View和ViewGroup之间传递,从而加深对这一机制的理解。

    sencha-touch

    - **触摸事件处理**:优化了触摸事件的响应,提供流畅的用户交互体验。 - **数据绑定**:强大的数据模型和视图绑定机制,简化了数据驱动的界面更新。 - **组件丰富**:内置了各种常见UI组件,如按钮、表单、列表...

    安卓Android源码——touch.rar

    这个"安卓Android源码——touch.rar"的压缩包可能是对上述部分或全部内容的详细实现,对于Android开发者来说,研究这些源码将有助于提升对Android系统底层运作的理解,从而更好地进行应用开发。

Global site tag (gtag.js) - Google Analytics