事件機制
我們知道view中有ontouch,onclick,
1.並且ontouch優先於onclick執行,
2.ontouch有返回值,為true時onclick並不再執行了
因為一切view都extend於view(dispatchtoucheevent),還是viewgroup(onintercepttouchevent)也是view的乙個容器,並寫在事件分發邏輯.
首先看看viewgroup
看看view
最後一張圖說明原因
1. android事件分發是先傳遞到viewgroup,再由viewgroup傳遞到view的。
2. 在viewgroup中可以通過onintercepttouchevent方法對事件傳遞進行攔截,onintercepttouchevent方法返回true代表不允許事件繼續向子view傳遞,返回false代表不對事件進行攔截,預設返回false。
3. 子view中如果將傳遞的事件消費掉,viewgroup中將無法接收到任何事件。
activity -> activity子類 -> window() - > viewgroup -> supter viewgroup -> view (屬於責任鏈) handler原始碼分析,button底層是extend textview,用handler來實現事件發發
關於onTouch事件的講解
概要 android存在事件分發機制。事件分發是父控制項向子控制項傳遞,子控制項處理事件,然後逐層返回父控制項 事件分發 ondispatchevent ontouchevent 此事件不做任何解釋,只是單純的分發控制項 onintercepttouchevent 此事件是有返回值的,boolean...
Android對onTouch觸控事件的處理
在android對ontouch主要呼叫三個方法對觸控傳遞 1 public boolean dispatchtouchevent motionevent ev 在觸控時,android首先呼叫的是這個方法,其分配何時呼叫onintercepttounch和ontouchevent,單純的返回tru...
事件分發機制
android中的事件型別分為按鍵事件和螢幕觸控事件,touch事件是螢幕觸控事件的基礎事件,有必要對它進行深入的了解。乙個最簡單的螢幕觸控動作觸發了一系列touch事件 action down action move action move action move.action move acti...