課程
/移動開發
/Android
/Android-五子連珠
請問為什么要在ACTION_DOWN返回true,聽老師說是把觸摸事件傳遞到自己本省并處理,可這個怎么理解,因為我還沒去了解Android控件的事件分發機制
2017-01-19
源自:Android-五子連珠 2-4
正在回答
首先事件指的是觸摸事件,分發,為什么要分發呢,就像你給自己的外甥發紅包一樣,這樣也叫分發,那么這樣就有viewgroup,viewgroup里面有子view,ViewGroup的相關事件有三個:onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent。View的相關事件只有兩個:dispatchTouchEvent、onTouchEvent。
簡單的來說就是viewgroup遍歷自己的子view,如果子view中有viewgroup,就繼續遍歷這個viewgroup的子view,都是調用的dispatchTouchEvent來分發事件,dispatchTouchEvent會返回一個布爾值類型的參數,事件會一直分開,一直在某個view調用dispatchTouchEvent返回true,表示事件分發到此結束,返回true的這個view就是需要接受這個事件的view,
ViewGroup的dispatchTouchEvent是真正在執行“分發”工作,而View的dispatchTouchEvent方法,并不執行分發工作,或者說它分發的對象就是自己,決定是否把touch事件交給自己處理,而處理的方法,便是onTouchEvent事件,這里說到了view的onTouchEvent事件是這個時候開始執行,那么viewgroup的onTouchEvent什么時候執行呢?,當所有的子view調用dispatchTouchEvent都是返回false的時候,這個時候viewgroup的onTouchEvent就會執行
事實上,一次完整的Touch事件,應該是由一個Down、一個Up和若干個Move組成的
但是dispatchTouchEvent只是分發了Down事件,只有返回true的時候,證明這個view需要 這個事件,然后在繼續分發Up和Move事件給它
PogbaLIU 提問者
Listener呆 回復 PogbaLIU 提問者
舉報
Android游戲開發-五子連珠,本教程通過UI與邏輯實現雙人對戰
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-02-16
首先事件指的是觸摸事件,分發,為什么要分發呢,就像你給自己的外甥發紅包一樣,這樣也叫分發,那么這樣就有viewgroup,viewgroup里面有子view,ViewGroup的相關事件有三個:onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent。View的相關事件只有兩個:dispatchTouchEvent、onTouchEvent。
簡單的來說就是viewgroup遍歷自己的子view,如果子view中有viewgroup,就繼續遍歷這個viewgroup的子view,都是調用的dispatchTouchEvent來分發事件,dispatchTouchEvent會返回一個布爾值類型的參數,事件會一直分開,一直在某個view調用dispatchTouchEvent返回true,表示事件分發到此結束,返回true的這個view就是需要接受這個事件的view,
ViewGroup的dispatchTouchEvent是真正在執行“分發”工作,而View的dispatchTouchEvent方法,并不執行分發工作,或者說它分發的對象就是自己,決定是否把touch事件交給自己處理,而處理的方法,便是onTouchEvent事件,這里說到了view的onTouchEvent事件是這個時候開始執行,那么viewgroup的onTouchEvent什么時候執行呢?,當所有的子view調用dispatchTouchEvent都是返回false的時候,這個時候viewgroup的onTouchEvent就會執行
事實上,一次完整的Touch事件,應該是由一個Down、一個Up和若干個Move組成的
但是dispatchTouchEvent只是分發了Down事件,只有返回true的時候,證明這個view需要 這個事件,然后在繼續分發Up和Move事件給它