Android 触摸事件的机制和原理

一、触摸事件类型

action_downaction_moveaction_up三种类型。

二、事件传递的三个阶段

1.分发:dispatchTouchEvent,返回true表示事件被当前视图消费掉,不在继续分发事件;返回super表示继续分发该事件,如果当前视图是ViewGroup及其子视图,会调用onInterceptTouchEvent判断是否拦截该事件

2.拦截:interceptTouchEvent,只在ViewGroup和子类中才有,返回true表示拦截该事件,不继续分发给子视图,同时交由自己的onTouchEvent方法进行消费。返回falsesuper表示不对该事件进行拦截

3.消费:onTouchEvent,返回true表当前视图可以处理对应事件,事件讲不会向上传递给父视图;返回false表当前视图不处理这个事件,事件会被传递给父视图的onTouchEvent方法进行处理。

 

ActivitydispatchTouchEventonTouchEvent

ViewGroup:dispatchTouchEventonInterceptTouchEventonTouchEvent

View:dispatchTouchEventonTouchEvent

三、View的事件传递机制

Android 触摸事件的机制和原理

四、ViewGroup的事件传递机制

注:改个错误,在图中(注释3)返回super,默认和false处理是一样的,大家看的时候注意一下,然后下载的文档中也是

Android 触摸事件的机制和原理

我的理解就这些,欢迎大家来指导和留言,一起学习一起进步!

看不清图片的小仙女们,我传了一份pdf的网上,点击下载哦!!!

http://download.csdn.net/detail/u010074054/9912187