天天看点

触屏事件传递机制disPatchTouchEvent onInterceptTouchEvent onTouchEvent

disPatchTouchEvent():方法负责派发触屏事件.
onInterceptTouchEvent():方法负责是否截断触屏事件.只有ViewGroup(布局组件有)
onTouchEvent():方法负责消费触屏事件(Activity,View都有)

 触摸事件是从Activity的dispatchTouchEvent()方法开始。再调用父类的super.dispatchTouchEvent(ev),事件向派发
 事件派发到ViewGroup,onInterceptTouchEvent()方法回调,默认返回false(不拦截)事件向下View组件派发,View组件onTouchEvent()返回true(已消费),ok那么触屏事件处理完成,dispatchTouchEvent()方法返回true()(派发成功);
                                                              false(不消费),向上传播ViewGroup的onTouchEvent()-->不消费        false 
                            返回true(拦截)事件不会向View派发,ViewGroup的onTouchEvent()true/false消费/不消费,向上传播若无人消费,dispatchTouchEvent()false(派发失败)
           
触屏事件传递机制disPatchTouchEvent onInterceptTouchEvent onTouchEvent
触屏事件传递机制disPatchTouchEvent onInterceptTouchEvent onTouchEvent
触屏事件传递机制disPatchTouchEvent onInterceptTouchEvent onTouchEvent
触屏事件传递机制disPatchTouchEvent onInterceptTouchEvent onTouchEvent

继续阅读