android的時間分發機制

2021-07-22 01:16:12 字數 1374 閱讀 4950

結合網上資料和自己理解寫的,是個自己的總結,翻到的朋友不一定看的懂,主要參考位址如下

主要參考:

事件分發包含 單個view中如何分發   viewgroup和view如何分發事件

在單個view中

ontouch  ontouchevent  onclick  三個方法執行順序 從左到右

在乙個view接受到觸控後  首先觸發 dispatchtouchevent(ev)方法  這個方法會先呼叫

ontouch方法,執行的條件是 三個

如果montouchlistener != null,(mviewflags & enabled_mask) == enabled和montouchlistener.ontouch(this, event)這三個條件都為真,就返回true,否則就去執行ontouchevent(event)方法並返回。

然後如果ontouch方法返回false 才會執行 ontouchevent方法,ontouchevent返回 fasle才會返回執行onclick方法

viewgroup和view的事件傳遞、

這個事件分發機制是為了通過action_down 找出在**真正消費事件,即執行ontouchevent方法是在哪個view裡,在後續的執行move 和up 以及其他的動作時直接找到view

1,事件分發:

public boolean dispatchtouchevent(motionevent ev)

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

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

事件向下傳遞是通,1接收到資訊 在super方法裡會呼叫ontouch 和ontouchevent

1.true,fasle ,super 有不同結果,// 當返回true時,收到事件,並且處理事件,事件在這個方法裡消費

// 當返回false時, 表示收到事件,但不向下傳遞, 也不處理事件,最終由上一層的ontouchevent來響應

// super.dispatchtouchevent(ev);其實和false結果一樣,不一樣的是他會呼叫呼叫ontouch 和ontouchevent

2.

3.

Android事件分發機制

public boolean dispatchtouchevent motionevent ev else return consume 上面的一段 將事件分發中三個主要方法的關係表現。一 touch 事件分析 事件分發 public boolean dispatchtouchevent motio...

Android事件分發機制

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

Android事件分發機制

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