天天看點

觸屏事件傳遞機制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

繼續閱讀