`
cuixuxucui
  • 浏览: 350765 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android view(3)事件处理流程

 
阅读更多

一、分发

当一个MotionEvent产生后,系统要把这个事件传递给具体的view,这个传递过程就是分发。

1.public boolean onInterceptTouchEvent(MotionEvent event)

返回Boolean结果,表示是否拦截处理此事件,默认返回false表示不拦截。只有viewgroup才有此方法,view没有,所以view收到后会立即执行onTouchEvent。

2.public boolean onTouchEvent(MotionEvent event)

自己去处理这个事件,返回结果表示是否消耗此事件。view的onTouchEvent默认消耗此事件。

3.public boolean dispatchTouchEvent(MotionEvent event)

继续往子元素分发事件,返回结果表示是否消耗此事件

伪代码如下

public boolean dispatchTouchEvent(MotionEvent event){

   boolean consume = false;

   if(onInterceptTouchEvent(event)){

      consume = onTouchEvent(event);

   }else{

      consume = child.dispatchTouchEvent(event);

   }

   return consume;

}

分发会从Activity开始,经过PhoneWindow,DecorView,再传入下面的元素中。

二、处理

如果View的onTouchEvent返回了False,表示不处理。就会调上层的onTouchEvent,上层不处理,继续往上反馈。

 

分享到:
评论

相关推荐

    Android View事件分发处理机制Demo

    在Android开发中,View事件分发处理机制是开发者必须深入理解的重要概念,它涉及到用户与界面交互时的各种点击、滑动等操作的响应流程。本文将详细解析Android View事件分发处理机制,并通过一个名为"TestEventFlow...

    Android中父View和子view的点击事件

    通过阅读源码,我们可以更深入地理解点击事件的处理流程,这对于优化性能和解决复杂场景下的事件冲突非常有帮助。 六、工具支持 对于复杂的布局,开发者可以借助工具如Android Studio的Layout Inspector来查看布局...

    Android判断touch事件点是否在view范围内的方法

    首先,让我们了解Android中的触摸事件处理流程。Android通过MotionEvent类来表示触摸屏幕产生的动作,如ACTION_DOWN、ACTION_UP、ACTION_MOVE等。当用户触摸屏幕时,系统会生成一个MotionEvent对象,并将其传递给...

    android触屏事件之activity,view,viewgroup

    ViewGroup也可以设置监听器,以便在特定条件下干预事件处理流程。 Android的触屏事件处理遵循“事件分发链”这一概念。事件首先到达Activity,然后由Activity将事件分发给最底层的View。如果该View未处理事件,事件...

    android之Touch事件处理机制测试

    在"androidTest"项目中,可以通过创建不同的View和ViewGroup,设置相应的监听器,并通过log输出调试信息,来模拟和测试各种触摸事件的处理和传递情况。例如,可以创建一个LinearLayout作为父View,包含两个子View,...

    android事件分发流程

    在Android系统中,事件分发流程是用户与应用程序交互的核心机制。它决定了用户在屏幕上点击、滑动等操作如何被各个UI元素正确处理。本文将深入解析Android事件分发的详细过程,帮助开发者理解这一关键机制。 事件...

    Android事件处理机制详解及源码

    Android事件处理机制是Android应用程序开发中的关键组成部分,它使得用户与应用之间能够进行有效的交互。在Android系统中,事件处理主要包括触摸事件、键盘事件、广播事件等,这些事件的处理方式直接影响到应用的...

    Android 事件处理机制

    在Android系统中,事件处理机制是用户界面交互的关键部分,它允许应用程序响应用户的输入操作,如点击、滑动等。Android事件处理主要包括两种方式:基于监听器(Listener)的事件处理和基于消息队列(Message Queue...

    android中的事件处理

    2. 触摸事件的处理流程:首先由ViewGroup的dispatchTouchEvent()分发事件,然后由子View的onTouchEvent()处理,最后ViewGroup的onInterceptTouchEvent()拦截事件。 三、九大事件 1. 触摸事件:上述已详细介绍。 2....

    自己写的android事件分发拦截处理的代码可以清楚知道事件分发拦截和处理的过程.rar

    1. 事件分发流程:在Android中,事件分发遵循“触摸事件传递链”,它从顶级父视图(通常是DecorView)开始,沿着视图层次结构向下传递,直到某个视图消费事件或者事件被完全忽略。这一过程包括ACTION_DOWN、ACTION_...

    android中触摸事件的分发机制

    2. **ViewGroup拦截**:如果一个ViewGroup需要在子View处理事件之前进行操作,可以在`onInterceptTouchEvent()`中进行处理。 3. **多点触控**:对于多点触控,ACTION_POINTER_DOWN和ACTION_POINTER_UP事件会包含额外...

    Android之Input子系统事件分发流程 - CSDN博客1

    如果某个View处理了事件,它会返回true表示已消费事件;否则返回false,事件将继续传递。这个过程一直持续到事件被处理或者完全回传。 总的来说,Android Input子系统的事件分发流程涉及了从硬件驱动到应用程序的多...

    android事件处理

    Android事件处理系统允许应用程序响应用户的触摸、键盘输入、网络变化等各种事件。本篇将详细解析Android事件处理机制,特别是基于给定的"android 事件处理demo",我们将深入探讨如何在实际应用中处理触摸事件。 ...

    Android基本控件事件总结

    在Android开发中,基本控件是构建...了解并熟练掌握这些控件的事件处理机制,对于构建功能丰富的Android应用程序至关重要。在实际开发中,开发者可以根据需求结合这些基本控件和事件,构建出各种复杂的用户交互场景。

    android事件分发、拦截、处理的示例代码

    在Android开发中,事件分发、拦截和处理是UI交互中的关键部分,它涉及到Activity、ViewGroup和View之间的协作。事件通常指的是用户与屏幕上的控件进行交互时产生的触摸事件,如点击、滑动等。下面我们将深入探讨这一...

    AndroidView的事件分发机制和滑动冲突解决方案.docx

    ### AndroidView的事件分发机制和滑动冲突解决方案 #### 一、View的事件分发机制 在Android中,理解View的事件分发机制是非常重要的,因为它直接关系到用户交互的响应逻辑。本文将首先介绍Android中View的事件分发...

    Android 事件处理机制 demo

    在事件处理中,我们通常会遇到`onTouchEvent()`方法,它是View处理触摸事件的主要接口。 2. **事件监听器**:Android提供了多种类型的监听器,例如OnClickListener、OnLongClickListener、OnTouchListener等,用于...

    谈谈对Android View事件分发机制的理解

    - 如果子View处理了事件(`onTouchEvent()`返回`true`),事件处理结束;如果返回`false`,事件会回溯到父View,继续寻找可以处理事件的View。 2. **事件生命周期**: - ACTION_DOWN:事件开始,手指首次接触屏幕...

    android view事件传递分析

    在Android开发中,View事件传递是一个至关重要的概念,它涉及到用户与界面的交互,...通过深入理解事件分发流程、相关方法以及如何自定义事件处理,开发者能够更好地控制应用的用户体验,创造出更符合需求的交互效果。

Global site tag (gtag.js) - Google Analytics