android View 事件的分發機制

View主要是有三個方法  dispatchTouchEvent()onInterceptTouchEvent() onTouchEvent()


dispatchTouchEvent是觸摸事件的核心機制 後面的兩個方法都是這個方法裏面調用的 所以只要已觸摸到手機屏幕 ,首先調用的就是dispatchTouchEvent()這個方法, 當在ViewGroup中時  首先在dispatchTouchevent()中調用它自身的攔截事件 即onInterceptTouchEvent()方法 判斷ViewGroup是否攔截這個觸摸事件 如果攔截就沒有後續的子View的事件發生了,當然在這裏有多種情況 1.剛開始攔截 後面又不攔截 2 剛開始攔截 中間不攔截 後面有攔截 3 剛開始不攔截 後面攔截等,要想後面的兩個方法調用 比如Move事件被調用的前提是 dispatchTouchEvent()方法得返回true,纔會觸發後面的MOVE UP事件,因此可以在onInterceptTouchEvent()這個方法裏面來做父類和子類的觸摸事件的衝突,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章