android之事件分發的細節說明

2021-07-11 14:04:23 字數 998 閱讀 1322

1、在dispatchtouchevent()中,當前action(down、move、up)返回true才會執行後邊的action,若dispatchtouchevent()直接return false,則後邊的action不會得到執行

如:當使用者按下 down時,dispatchtouchevent() return false,則後邊的move和up操作則不會執行,

當使用者按下 down時,dispatchtouchevent() ,down/move/up的操作都會執行

當使用者按下 down時,dispatchtouchevent() ,down/move/的操作都會執行,但up操作不會執行

2、父類攔截事件細節:攔截事件有兩個控制變數,其中兩個變數的關係才能攔截事件:

第一  是禁用攔截欄位disallowintercept 預設是false,若是沒改動,則開發者只需要通過重寫onintercepttouchevent() return true;來                 攔  截事件,即disallowintercept = false&&onintercepttouchevent() return true,則攔截事件,不會分發給子view;

第二 可以直接通getparent().requestdisallowintercepttouchevent(true),不禁用攔截事件,設定之後不會執行                      onintercepttouchevent()方法,直接執行子view的dispatchtouchevent()方法,之後就按照子view的分發機制

case down:

return true;

case down:

return true;

可以看到大體的事件流程為:

mylinearlayout的dispatchtouchevent -> mylinearlayout的onintercepttouchevent -> mybutton的dispatchtouchevent ->mybutton的ontouchevent 

android複習路之事件分發機制篇

最近看了很多關於事件分發機制的文章下面對事件分發機制進行乙個總結純理論性的 事件攔截機制有三種ondispatchtouchevent 攔截,onintercepttouchevent 攔截,ontouchevent 攔截。所有的方法在後面會有圖進行展示。1.ondispatchtouchevent...

Android開發坑系列 之事件分發機制

總結一下 事件序列的定義 從手觸控螢幕 含 到離開螢幕 含 期間所發生的一系列互動事件。主要由action down action move actoin up action cancel 等組成,其中一次事件序列中,down和up都只有最多乙個,move有若干個,可以為0個。定律 某個view只有...

Android 事件分發

touch 事件的分發和消費機制dispatchtouchevent onintercepttouchevent 和ontouchevent dispatchtouchevent 事件分發 true 事件會分發給當前view 並由dispatchtouchevent 方法消費,同時停止向下傳 fal...