android 触控事件传递机制

Android中提供了ViewGroup、View、Activity三个等级的Touch事件处理。也就是说,这三个地方都有事件回调方法。至于三者之间的执行顺序,将在下面详细阐述:
整体上看,事件传递顺序为ViewGroup::onInterceptTouchEvent() –> ViewGroup或View的onTouchEvent() –> Activity::onTouchEvent()

由于上面每个事件回调方法的返回值不同,导致事件本身及顺序发生微妙变化。下面以返回值为主线来详细阐述:
需要注意以下两点:
1、onInterceptTouchEvent()返回true,那么这个方法只会拦截动作ACTION_DOWN。
2、onInterceptTouchEvent()负责事件分发(事件传递方向),onTouchEvent()负责事件处理(消费)。
转自:http://orgcent.com/android-touch-event-mechanism/

© 2012, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记