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

android View 事件

 
阅读更多
View 提供了若干事件.
在渲染 布局 展现 相关事件的触发顺序总结如下

Constructors
onFinishInflate() 当View和它的所有子对象从XML中导入之后,调用此方法
Layout
onMeasure(int, int) View会调用此方法,来确认自己及所有子对象的大小
onLayout(boolean, int, int, int, int, int, int) 当View要为所有子对象分配大小和位置时,调用此方法
onSizeChanged(int, int, int, int) 当View大小改变时,调用此方法
DrawingonDraw(Canvas) 当View要绘制它的内容时,调用此方法
Event processingonKeyDown(int, KeyEvent) 当一个新的按键事件发生时,调用此方法
onKeyUp(int, KeyEvent) 当一个按键释放事件发生时,调用此方法
onMotionEvent(MotionEvent) 当一个动作事件(如触摸)发生时,调用此方法
Focus
onFocusChanged(boolean, int) 当View获得或失去焦点时,调用此方法
AttachingonAttachedToWindow() 当View附加到一个窗体上时,调用此方法
onDetachedFromWindow() 当View离开它的窗体时,调用此方法
当你为一个 activty 添加一个可见的 view, 并且运行这个activty时,android通常情况下会自动按照下列顺序来触发view的相关事件
onAttachedToWindow
onMeasure
onSizeChanged
onLayout
onDraw 

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。

0
0
分享到:
评论

相关推荐

    Android View 事件传递与消费

    Android View 事件传递与消费,用于view事件传递的理解。

    Android View事件分发处理机制Demo

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

    Android View事件机制 21问21答

    Android View事件机制是Android开发中的核心部分,它涉及到用户与应用程序界面的交互。本文将通过21个问题和答案深入探讨这一主题。 1. **View的坐标参数**:View的坐标参数包括Left、Right、Top、Bottom,它们表示...

    android view事件传递分析

    本文将深入探讨Android View事件传递机制。 首先,我们从基础开始,Android事件传递主要涉及三个对象:事件(Event)、视图(View)和事件分发链(Event Dispatch Chain)。事件通常由用户的触摸输入触发,如按下、...

    Android View 事件分发机制详解

    本文将深入解析Android View事件分发机制,主要包括三个关键方法:`dispatchTouchEvent()`, `onInterceptTouchEvent()`, 和 `onTouchEvent()`。 首先,`dispatchTouchEvent(MotionEvent ev)` 是事件分发的起点,...

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

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

    android View事件分发机制实验代码

    本源码结合博客地址: https://blog.csdn.net/gaoxiaoweiandy/article/details/89840433 讲述了View的事件分发机制以及如何阅读与分析源码。

    Android View事件分发和消费源码简单理解

    Android View事件分发和消费源码简单理解 Android View事件分发和消费是Android应用程序中的一种关键机制,它负责处理用户的触摸事件,并将其分发给相应的View组件,以便实现用户界面的交互。在Android系统中,事件...

    Android View事件分发机制详解

    本文将深入解析Android View事件分发的工作原理,帮助开发者更好地理解如何控制事件的流向。 首先,我们要明白,当用户在屏幕上点击或滑动时,会产生一系列的MotionEvent事件,包括ACTION_DOWN、ACTION_MOVE以及...

    【Android】View事件分发思维导图

    详情见博客:http://blog.csdn.net/qq_23191031/article/details/60963217

    view的事件分发机制demo2

    在Android开发中,事件分发机制是理解和优化用户交互体验的关键环节。本文将深入探讨"view的事件分发机制demo2",并基于链接提供的详细...因此,深入研究"view的事件分发机制demo2"将对Android开发技能的提升大有裨益。

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

    本文将深入探讨Android中父View( ViewGroup)与子View的点击事件处理机制,以及如何在实际应用中进行有效管理。 一、点击事件的基础知识 在Android中,点击事件是由MotionEvent类来表示的,主要包括ACTION_DOWN、...

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

    在Android中,我们通常通过重写View的`onTouchEvent(MotionEvent event)`方法来监听和处理触摸事件。在该方法中,我们可以获取到事件的动作类型和坐标信息。例如,ACTION_DOWN表示手指触碰屏幕的那一刻,这时我们...

    android触屏事件之activity,view,viewgroup

    在Android开发中,触屏事件处理是用户交互的核心部分,涉及到Activity、View和ViewGroup这三个关键组件。本文将深入探讨这些组件在触屏事件处理中的角色和机制。 首先,我们来理解Activity。Activity是Android应用...

    Android自定义View的事件分发机制(一)

    事件分发是Android UI交互的核心机制,它决定了触摸事件如何在View层次结构中传递。本文将深入探讨自定义View的事件分发机制。 事件分发在Android中分为三个主要步骤:`dispatchTouchEvent()`, `...

    android view 单击、双击和移动事件处理----TestViewEvent

    本文将深入探讨如何在Android中处理View的单击、双击以及移动事件,以实现更佳的用户体验。我们将通过一个名为"TestViewEvent"的例子来阐述这些概念。 首先,我们要了解Android中的基本事件监听器。在Android中,...

    Android点击事件传递分析Demo

    首先,Android中的点击事件主要由四个基本的触摸事件构成:ACTION_DOWN(手指触摸屏幕)、ACTION_MOVE(手指在屏幕上移动)、ACTION_UP(手指离开屏幕)以及ACTION_CANCEL(事件被取消或中断)。这些事件构成了一个...

Global site tag (gtag.js) - Google Analytics