Android事件分發總結

2021-09-13 17:59:22 字數 1104 閱讀 2226

1. dispatchtouchevent是處理觸控事件分發,android中所有的事件都必須經過這個方法的分發,然後決定是自身消費當前事件還是繼續往下分發給子控制項處理。返回true表示不繼續分發,事件沒有被消費。返回false則繼續往下分發,如果是viewgroup則分發給onintercepttouchevent進行判斷是否攔截該事件,事件(多數情況)是從activity的dispatchtouchevent開始的。執行dispatchtouchevent(ev),事件向下分發。

2. onintercepttouchevent是viewgroup中才有的方法,view中沒有,它的作用是負責事件的攔截,返回true的時候表示攔截當前事件,不繼續往下分發,交給自身的ontouchevent進行處理。返回false則不攔截,繼續往下傳。這是viewgroup特有的方法,因為viewgroup中可能還有子view,而在android中view中是不能再包含子view的(ios可以)

3. ontouchevent是view中提供的方法,viewgroup也有這個方法,view中不提供onintercepttouchevent。view中預設返回true,表示消費了這個事件,ontouchevent方法用於事件的處理,返回true表示消費處理當前事件,返回false則不處理,交給子控制項進行繼續分發。

知識點:

1.android中事件傳遞按照從上到下進行層級傳遞,事件處理從activity開始到viewgroup再到view。

2.事件傳遞方法包括dispatchtouchevent、ontouchevent、onintercepttouchevent,其中前兩個是view和viewgroup都有的,最後乙個是只有viewgroup才有的方法。這三個方法的作用分別是負責事件分發、事件處理、事件攔截。

3.ontouch事件要先於onclick事件執行,ontouch在事件分發方法dispatchtouchevent中呼叫,而onclick在事件處理方法ontouchevent中被呼叫,ontouchevent要後於dispatchtouchevent方法的呼叫。

Android事件分發總結

dispatchtouchevent 返回true 消費事件 dispatchtouchevent 返回false 不分發事件 由上層ontouchevent 處理 dispatchtouchevent 返回super 預設邏輯向下分發事件 ontouchevent 返回true 消費事件 onto...

Android 事件分發

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

Android事件分發

android 中與 touch 事件相關的方法包括 dispatchtouchevent motionevent ev onintercepttouchevent motionevent ev ontouchevent motionevent ev 能夠響應這些方法的控制項包括 viewgroup...