Android事件模型

转载 2012年03月28日 13:32:53

http://www.cnblogs.com/-OYK/archive/2011/06/01/2067206.html

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 之间的一系列事件) 

 

注:上半部分为父View,下半部分为子View; 

完整的传递流程为:父View->子View->子View的子View->……->子View的子View->子View->父View。 
如果整个流程中都没有处理掉这个事件,即所有处理的返回值均为false,则不会再传递下一次事件,因为他会认为你这次的事件阻塞了,没必要给下一次。 
onTouchEvent如果不消耗的话,会从子view传递到父view。


相关文章推荐

跟我学android之四 事件驱动模型

Android事件驱动模型需要深刻学习和理解,事件驱动模型三要素如下: 事件驱动模型 事件源:事件的制造者,如:按钮 通常会拥有注册和取消监听器的功能 监听器:...

Android事件模型

Touchevent 中,返回值是 true ,则说明消耗掉了这个事件,返回值是 false ,则没有消耗掉,会继续传递下去,这个是最基本的。 在 View 中跟 Touch 相关的事件有 dis...

Android - 事件模型

针对由于触摸(Touch)而触发的事件。 Android的事件:onClick, onScroll, onFling等等,都是由许多个Touch组成的。其中Touch的第一个状态肯定是     ...
  • zwq1457
  • zwq1457
  • 2012年09月18日 14:02
  • 517

Android - 事件模型(dispatchTouchEvent , interceptTouchEvnet , onTouchEven)

Android - 事件模型 以前写 android ,对事件的处理没有太深入,只是简单的 onTouchEvent 就 ok 了,现在写的 UI ,很多自定义组件,父 view...

Android事件处理模型

事件处理是Android编程中非常重要的一个部分,因为Android应用在运行过程中会产生许多各种各样的事件(动作),应用必须为这些动作执行对应的响应代码;将产生的动作和响应联系起来的方式就是事件处理...

Android事件模型之interceptTouchEvnet ,onTouchEvent关系正解

首先,看Android的官方文档正解 onInterceptTouchEvent()与onTouchEvent()的机制:   1. down事件首先会传递到onInterce...

Android Touch事件模型

以前写 android ,对事件的处理没有太深入,只是简单的 onTouchEvent 就 ok 了,现在写的 UI ,很多自定义组件,父 view 和子view 都需要接收事件,然后处理。如果不弄明...

Android之事件响应的两种模型分析

对android的监听模型的理解吧

android 事件模型原理2

1 InputManager系统服务 我们知道Android由诸多系统服务组成,它们在系统启动的时候由Zygote孵化出来,自始至终运行于后台,这其中,WindowManagerService就是一...

Android事件处理的两种模型

UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理。 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的...
  • ACE1985
  • ACE1985
  • 2012年05月24日 01:05
  • 7690
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android事件模型
举报原因:
原因补充:

(最多只允许输入30个字)