您的位置:首页 > 移动开发 > Android开发

Android事件传递的理解

2016-04-18 14:56 561 查看
下述伪代码完美展现事件传递机制:

<pre name="code" class="java">public boolean onDispatchTouchEvent(MotionEvent event){</span>
boolean ret = false;
if(onInterceptTouchEvent(event)){
ret = onTouchEvent(event);
}else{
ret = child.onDispatchEvent(event);
}
return ret;
}



理解:

关于事件传递的三个关键方法:

onDispatchTouchEvent(); 核心方法,负责事件的调度

onInterceptTouchEvent(); 当前view是否拦截这个事件

onTouchEvent(); 事件处理方法

事件传递过程:

对于ViewGroup,一个事件序列发生后:

首先,它的onDispatchTouchEvent()方法被调用,在onDispatchTouchEvent()方法内部,会调用onInterceptTouchEvent()方法,

若返回true,则代表当前view要拦截此事件,则会继续调用onTouchEvent();若返回false,则代表当前view不拦截此事件,将继续调用

下级view的onDispatchTouchEvent()方法,重复事件传递过程。直到找到最终处理该事件的终极view。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android