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

ANDROID事件触发机制

阅读更多
ANDROID事件触发机制
首先,这篇文章仅仅针对于由于触摸(Touch)而触发的事件。
Android的事件:onClick, onScroll, onFling等等,都是由许多个Touch组成的。其中Touch的第一个状态肯定是ACTION_DOWN, 表示按下了屏幕。之后,touch将会有后续事件,可能是:
ACTION_MOVE //表示为移动手势
ACTION_UP //表示为离开屏幕
ACTION_CANCEL //表示取消手势,不会由用户产生,而是由程序产生的
一个Action_DOWN, n个ACTION_MOVE, 1个ACTION_UP,就构成了Android中众多的事件。
在Android中,有一类控件是中还可以包含其他的子控件,这类控件是继承于ViewGroup类,例如:ListView, Gallery, GridView。
还有一类控件是不能再包含子控件,例如:TextView。
本文的主要讨论对象就是ViewGroup类的控件嵌套时事件触发情况。
对于ViewGroup类的控件,有一个很重要的方法,就是onInterceptTouchEvent(),用于处理事件并改变事件的传递方向,它的返回值是一个布尔值,决定了Touch事件是否要向它包含的子View继续传递,这个方法是从父View向子View传递。
而方法onTouchEvent(),用于接收事件并处理,它的返回值也是一个布尔值,决定了事件及后续事件是否继续向上传递,这个方法是从子View向父View传递。
touch事件在 onInterceptTouchEvent()和onTouchEvent以及各个childView间的传递机制完全取决于onInterceptTouchEvent()和onTouchEvent()的返回值。返回值为true表示事件被正确接收和处理了,返回值为false表示事件没有被处理,将继续传递下去。
ACTION_DOWN事件会传到某个ViewGroup类的onInterceptTouchEvent,如果返回false,则DOWN事件继续向子ViewGroup类的onInterceptTouchEvent传递,如果子View不是ViewGroup类的控件,则传递给它的onTouchEvent。
如果onInterceptTouchEvent返回了true,则DOWN事件传递给它的onTouchEvent,不再继续传递,并且之后的后续事件也都传递给它的onTouchEvent。
如果某View的onTouchEvent返回了false,则DOWN事件继续向其父ViewGroup类的onTouchEvent传递;如果返回了true,则后续事件会直接传递给其onTouchEvent继续处理。(后续事件只会传递给对于必要事件ACTION_DOWN返回了true的onTouchEvent)
总结一下就是:onInterceptTouchEvent可以接受到所有的Touch事件,而onTouchEvent则不一定。
分享到:
评论

相关推荐

    Android 事件触发机制的深入学习

    Android 事件触发机制是指 Android 系统中处理用户交互事件的机制,包括触摸事件、按键事件、屏幕旋转事件等。 Android 事件触发机制的深入学习是 Android 开发中非常重要的一部分,了解 Android 事件触发机制可以...

    Android 事件处理机制

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

    [android][Android点击事件分发机制分析]

    事件分发机制是Android系统处理用户触摸事件的关键流程,理解这一机制对于优化UI交互和处理复杂视图层次结构至关重要。本文将深入探讨Android点击事件的分发过程,包括事件的产生、传递和处理。 首先,当用户在屏幕...

    Android Touch事件传递机制解析

    在Android系统中,触摸事件是用户与应用交互的重要方式,理解其事件传递机制对于优化UI交互和处理复杂触摸逻辑至关重要。本文将深入解析Android的Touch事件传递机制,并结合源码进行详细阐述。 首先,Android的触摸...

    Android事件分发机制

    在Android系统中,事件分发机制是用户与应用程序交互的核心环节,主要处理各种触摸事件(如点击、滑动等)。事件分发涉及到Activity、ViewGroup和View三个层次,确保触摸事件能够准确地传递到目标视图进行处理。下面...

    android事件传递机制

    在Android系统中,事件传递机制是用户界面交互的基础,它涉及到Activity、View、 ViewGroup等组件之间的协同工作。本文将深入探讨这一机制,帮助你理解如何在Android应用中处理触摸事件。 1. 触摸事件的起源 触摸...

    Android事件传递机制Demo.zip

    1. **事件流**:Android事件传递机制遵循"事件流",即事件首先会传递到View树的最顶层,也就是Window,然后向下逐级分发。事件流包括三个阶段:Down(触摸按下)、Move(移动)和Up(触摸释放)。 2. **事件分发**...

    android之Touch事件处理机制测试

    本文将深入探讨“android之Touch事件处理机制测试”,包括滑动事件冲突的解决、ViewGroup中的事件触发和传递机制。 一、Android Touch事件处理机制 1. 触摸事件流程:在Android中,触摸事件分为三个阶段,即ACTION...

    Android Touch事件分发机制代码一

    本文将深入解析Android的Touch事件分发机制,并通过一个名为"EventDispatchTest"的示例来说明。 1. **事件分发流程** Android中的触摸事件分发分为三个阶段:`dispatchTouchEvent()`, `onInterceptTouchEvent()`, ...

    智能家居系统 Android事件机制.doc

    这种处理机制采用了委派模式,我们为需要监听的控件绑定监听器(Listener),监听器负责监听特定事件的发生,并在事件触发时做出响应。例如,我们可以为一个按钮添加OnClickListener,当按钮被点击时,监听器的...

    android Touch触发事件的生命周期

    本篇将深入解析“android Touch触发事件的生命周期”,着重讨论ViewGroup中点击事件的`dispatchTouchEvent()`, `onInterceptTouchEvent()`, 和`onTouchEvent()`这三个关键方法之间的关系及其工作流程。 首先,我们...

    Android onTouch事件传递机制

    在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...

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

    在Android开发中,View事件分发机制是理解用户交互与响应的关键部分。本文将深入探讨这一主题,以解决文中遇到的问题:LinearLayout中的TextView和Button点击事件处理不一致。首先,我们要明白Android事件分发机制...

    Android onNewIntent()触发机制及注意事项

    一、onNewIntent() 在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent 1、其他应用发Intent,执行下列方法: onCreate onStart ...

    Android的事件处理机制

    ### Android的事件处理机制 #### 一、概述 在Android应用开发中,用户与界面的交互至关重要。良好的用户体验往往依赖于应用对用户操作快速而准确的响应。这背后的核心技术便是**事件处理机制**。本文将详细介绍...

    android 实现三击事件

    首先,我们需要了解Android的触摸事件处理机制。Android的触摸事件主要通过`MotionEvent`类来处理,该类提供了各种触摸事件的常量,如ACTION_DOWN(手指按下)、ACTION_UP(手指抬起)和ACTION_MOVE(手指移动)。...

    android input 事件的获取

    Android Input 事件获取机制 Android 操作系统中,input 事件是指用户与设备交互的过程,这包括 touch 事件、key 事件、鼠标事件等。了解 Android 获取 input 事件的机制,对于 Android 应用开发和设备驱动开发至关...

    android事件分析

    本文将深入探讨Android事件分析,包括事件传递机制、事件监听器以及常见事件类型的处理。 首先,Android事件处理主要依赖于事件传递链(Event Dispatching Chain)。当用户在屏幕上进行操作时,比如点击或滑动,...

Global site tag (gtag.js) - Google Analytics