Android事件分發機制

2021-07-25 16:23:35 字數 1003 閱讀 7504

public boolean dispatchtouchevent(motionevent ev)else

return consume;

}

上面的一段**將事件分發中三個主要方法的關係表現。

一、touch 事件分析

▐ 事件分發:public boolean dispatchtouchevent(motionevent ev)

touch 事件發生時 activity 的 dispatchtouchevent(motionevent ev) 方法會以隧道方式(從根元素依次往下傳遞直到最內層子元素或在中間某一元素中由於某一條件停止傳遞)將事件傳遞給最外層 view 的 dispatchtouchevent(motionevent ev) 方法,並由該 view 的 dispatchtouchevent(motionevent ev) 方法對事件進行分發。dispatchtouchevent 的事件分發邏輯如下:

▐ 事件攔截:public boolean onintercepttouchevent(motionevent ev)

在外層 view 的 dispatchtouchevent(motionevent ev) 方法返回系統預設的 super.dispatchtouchevent(ev) 情況下,事件會自動的分發給當前 view 的 onintercepttouchevent 方法。onintercepttouchevent 的事件攔截邏輯如下:

▐ 事件響應:public boolean ontouchevent(motionevent ev)

在 dispatchtouchevent 返回 super.dispatchtouchevent(ev) 並且 onintercepttouchevent 返回 true 或返回 super.onintercepttouchevent(ev) 的情況下 ontouchevent 會被呼叫。ontouchevent 的事件響應邏輯如下:

Android事件分發機制

花了一下午的事件研究了一下android的事件分發機制,覺得有必要總結一下 順便分享出來,希望對大家有用 1 首先最重要的是需要了解viewgroup裡面重寫的三個方法 1 dispatchtouchevent 用於事件的分發 2 onintercepttouchevent用於事件的攔截 3 ont...

Android事件分發機制

一 三個重要的方法 dispatchtouchevent onintercepttouchevent activity和view無此方法 activity 作為事件的原始分發著會造成無響應 view最為事件的最末端要麼處理事件,要麼回傳事件 ontouchevent 二 事件分發流程 activit...

Android事件分發機制

android的事件傳遞對應著三個階段 分發 攔截和消費,分發 對應的方法是dispatchtouchevent方法,在android系統中,所有的觸控事件都是通過這個方法來分發的。返回值為true表示事件被當前檢視消費掉,返回super.方法表示繼續分發該事件,如果當前檢視是viewgroup及其...