Android事件分发机制

父控件调用dispatchTouchEvent,dispatchTouchEvent调用onInterceptTouchEvent,onInterceptTouchEvent返回true,则父控件拦截,如果设置了OnTouchListener,则执行OnTouchListener的onTouch方法,返回true,说明事件被消费,流程结束。如果没有设置OnTouchListener,则执行父控件的onTouchEvent方法,如果返回true,说明事件被消费,流程结束,如果返回false,则递归调用控件的父控件的onTouchEvent方法,返回true,流程结束,返回false,则一直递归调用到Activity。如果onInterceptTouchEvent返回false,则递归调用子控件的dispatchTouchEvent,如果子控件没有拦截,事件流到达最下层空间(即已经没有子控件了),则同样先检查是否设置了OnTouchListener,如果设置了则执行执行onTouch方法,没有,则递归执行父控件的onTouchEvent方法

Android事件分发机制

上一篇:SpineRuntime-Presentation - 基于 spine-libgdx 实现在 AndroidPresentation 上展示 Spine 动画


下一篇:Active Record模式和MP的Mapper模式的比较