关于事件的传递机制。

每个ViewGroup都包含:onInterceptTouchEvent()和TouchEvent()

每个View包含:TouchEvent()

事件是从ViewGroup开始的之后经过传给ViewGroup或者View。

事件不可能一直往下传递,所以使用onInterceptTouchEvent()阻止事件像下面的控件传递。

使用TouchEvent()
阻止事件向上面的TouchEvent()传递。(使用返回值的方式true为已经被消耗,false为继续传递)

如:当返回值都为false的时候:

当LayoutView2的onInterceptTouchEvent(
)返回值为true的时候:

当LayoutView2的两个方法的返回值都为true时:

遇到的问题:本来以为只有返回false,才可以不消耗事件,让事件在Down,Move,Up 之间传递。但是事实并不是这样

Down,Move,Up 每个都是独立的事件个体,如果不能消耗掉Down事件,后面的Move,Up 事件也不能够执行。

时间: 2024-08-29 16:28:08

关于事件的传递机制。的相关文章

[学习总结]4、Android的ViewGroup中事件的传递机制(一)

本文主要针对dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent三个方法,通过简单的例子来简单的介绍下. 根据字面意思的理解,dispatchTouchEvent分发触摸事件,onInterceptTouchEvent拦截触摸事件,onTouchEvent触摸事件.正如它们各自的字面意思,下面简单的列出各自的作用和用法. 1.dispatchTouchEvent作用:决定事件是否由onInterceptTouchEvent来拦截处理. 返回s

[学习总结]5、Android的ViewGroup中事件的传递机制(二)

下面是第一篇的连接 Android的ViewGroup中事件的传递机制(一) 关于onInterceptTouchEvent和onTouchEvent的详细解释. 1 public class MainActivity extends Activity { 2 Group1 group1; 3 Group2 group2; 4 MyTextView myTv; 5 6 /** Called when the activity is first created. */ 7 @Override 8

Android初级教程:单击事件的传递机制初谈

以上仅是小试牛刀,后续有很多事件传递机制,继续探讨.

Touch事件的传递机制

本文主要从源代码的角度讲解view以及viewgroup的事件传递机制. ViewGroup的dispatchTouchEvent方法: Private TouchTarget firstTouchTarget; Public Boolean dispatchTouchEvent(MotionEvent ev){ 先进行安全检查,看看当前window有没有遮挡,如果没有继续 if(action==ACTION_DOWN){ 清理上次的TouchTargets的状态,避免程序切换和ANR的时候会抛

Android中Touch事件的传递机制

由于之前对于android的事件传递机制不了解,今天正好不忙,赶紧抽出时间来理一下这方面的知识,本文结合demo,对android的事件传递机制进行分析. 在事件传递过程中,离不开以下三个方法: 1.dispatchTouchEvent 分发touchEvent,返回值为true时表示TouchEvent被当前View处理,事件不会向下层传递(包括后续的onInterceptTouchEvent和onTouchEvent), dispatchTouchEvent会收到后续的ACTION_MOVE

Android Touch事件传递机制详解 上

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/37961997 最近总是遇到关于Android Touch事件的问题,如:滑动冲突的问题,以前也花时间学习过Android Touch事件的传递机制,可以每次用起来的时候总是忘记了,索性自己总结一下写篇文章避免以后忘记了,其实网上关于Touch事件的传递的文章真的很多,但是很少有系统性的,都是写了一个简单的demo运行了一下,对于我们了解Android Touch事件基本上没有任何帮助. 今

Android事件传递机制详解及最新源码分析——ViewGroup篇

在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴,强烈建议先阅读上一篇. 好了,废话还是少说,直奔主题,开始本篇的ViewGroup事件传递机制探索之旅. 依然从简单的Demo例子现象开始分析 新建安卓工程,首先自定义一个Button以及一个RelativeLayout,很简单,只是重写了主要与事件传递机制相关的方法,代码如下: 自定义WLButton类: 1 public class WLButton e

android事件传递机制的浅谈

想必大家有时会遇到需要自定义控件吧,这个时候就会遇到事件的传递和处理了,非常繁琐啊!百度上面一大票关于事件的传递机制,但是都千篇一律,都是dispatchTouchEvent 返回true,则事件被拦截,false则分发给子控件之类的,经过几天的研究发现这个事件传递并没有说的这么简单也没有想象中的难. 一般的点击事件.滑动事件都是用ACTION_UP.ACTION_MOE.ACTION_DOWN组成的,android应用里面默认情况下,触摸事件是从activity开始传递,假设里面的view都不

(转)Android Touch事件传递机制

-----来源:http://www.trinea.cn/android/touch-event-delivery-mechanism/ 介绍Android Touch事件的传递机制. 不少朋友私信问到这个问题,那就推荐一篇我看到的对传递机制介绍最清楚的国外文章吧.本文略作翻译. 1.基础知识 (1) 所有Touch事件都被封装成了MotionEvent对象,包括Touch的位置.时间.历史记录以及第几个手指(多指触摸)等. (2) 事件类型分为ACTION_DOWN, ACTION_UP, A