1 回答

TA貢獻1880條經驗 獲得超4個贊
dispatchTouchEvent的執行順序為:
首先觸發ACTIVITY的dispatchTouchEvent
然后觸發ACTIVITY的onUserInteraction
然后觸發LAYOUT的dispatchTouchEvent
然后觸發LAYOUT的onInterceptTouchEvent
這就解釋了重寫ViewGroup時必須調用super.dispatchTouchEvent();
2.
(1)dispatchTouchEvent:
此方法一般用于初步處理事件,因為動作是由此分發,所以通常會調用
super.dispatchTouchEvent。這樣就會繼續調用onInterceptTouchEvent,再由onInterceptTouchEvent決定事件流向。
(2)onInterceptTouchEvent:
若返回值為True事件會傳遞到自己的onTouchEvent();
若返回值為False傳遞到下一個view的dispatchTouchEvent();
(3)onTouchEvent():
若返回值為True,事件由自己處理消耗,后續動作序列讓其處理;
若返回值為False,自己不消耗事件了,向上返回讓其他的父view的onTouchEvent接受處理;
添加回答
舉報