3 回答

TA貢獻1827條經驗 獲得超4個贊
從活動的角度來看:
觸摸事件首先傳遞到Activity.dispatchTouchEvent。在這里您可能會首先抓住它們。
在這里,它們被調度到Window,并在其中遍歷View層次結構,以使最后繪制的窗口小部件(在其他窗口小部件之上)有機會首先在View.onTouchEvent中處理觸摸。如果某些View在onTouchEvent中返回true,則遍歷停止并且其他View不接收觸摸事件。
最后,如果沒有View消耗觸摸,則將其傳遞給Activity.onTouchEvent。
這就是您的全部控制權。順理成章的是,您看到的繪制在其他對象之上的東西有機會在觸摸下面的事物之前處理觸摸事件。

TA貢獻1836條經驗 獲得超5個贊
偽代碼:
? ?public boolean dispatchTouchEvent(MotionEvent ev) {
? ? ? ? boolean consume = false;
? ? ? ? if (onInterceptTouchEvent(ev) {
? ? ? ? ? ? consume = onTouchEvent(ev);
? ? ? ? } else {
? ? ? ? ? ? consume = child.dispatchTouchEvent(ev);
? ? ? ? }
? ? ? ? return consume;
? ? }
ref:Android開發藝術探索
- 3 回答
- 0 關注
- 366 瀏覽
添加回答
舉報