Android Touch 事件 执行过程

////还没有认真试过,有时间测试下,看下结果。

Android系统每个View都有3个和Touch事件相关的方法:

public boolean dispatchTouchEvent(MotionEvent ev){},用来分发Touch事件;

public boolean onInterceptTouchEvent(MotionEvent ev){},用来拦截Touch事件;

public boolean onTouchEvent(MotionEvent ev){},这里响应Touch事件;

1、当Touch事件发生时,最先响应的是顶层的View(父View),通过dispatchTouchEvent,把事件分发下去;

2、如果dispatchTouchEvent 返回true,则交给这个View的onTouchEvent处理;如果返回 false,则交给这个View的onInterceptTouchEvent来处理;

3、如果onInterceptTouchEvent 返回true,则交给onTouchEvent处理;如果返回 false,则传递给子View,由子View的dispatchTouchEvent 来分发事件;

4、当执行到某个View的onTouchEvent方法中时,若返回true,则整个Touch事件结束;若返回false,则执行父View的onTouchEvent方法;

 

posted @ 2013-09-10 15:25  云海天际  阅读(183)  评论(0编辑  收藏  举报