對手勢分發機制的一些理解

2021-07-10 21:43:30 字數 1149 閱讀 6960

1、

2、

viewgroup 的 ondispatchtouchevent() 負責對手勢的分發,當 ondispatchtouchevent 方法返回false的時候,事件分發被攔截,從該viewgroup開始在這之後的子view將不會接收到對事件處理的通知,ontouchevent將會由上層viewgroup或者activity執行。(但是子view的action_down事件還是會執行)返回true的意思即分發事件被消費,那麼viewgroup的ontouchevent方法將不會被呼叫。將會呼叫子view的ontouchevent。

而子view的ondispatchtouchevent方法並不執行分發物件,其執行的物件就是他自己,它的返回值是return ontouchevent()。如果return true則表示改touchevent會被消費,即會執行action_move/up事件。

當所有的子view都返回false時,viewgroup就會執行其自身的ontouchevent 方法。(因為當子view返回false的時候,將會上傳給parent的viewgroup的ontouchevent方法,如果viewgroup不處理,將會一直上傳到activity。)隧道式下發,冒泡式上傳。

onintercepttouchevent返回true 時 ,攔截正在執行的手勢,將由執行該方法的viewgroup的ontouchevent方法執行action一系列動作。此時子view將會收到乙個action_cancel的狀態,並在狀態中處理(其action_down/move/up方法將不會被執行)。如果onintercepttouchevent返回true,則子view的action_down方法也不會執行,即手勢被攔截,只會執行viewgroup的ontouchevent。

etcd 一些機制

checkquorum機制 每隔一段時間,leader節點會嘗試連線集群中的節點 傳送心跳 如果發現自己可以連線到的節點個數沒有超過半數,則主動切換成follower狀態。這樣在網路分割槽的情況下,舊的leader節點可以很快的知道自己已經過期了。prevote優化 當follower節點準備發起選...

堆疊的一些理解

堆疊是一種執行 後進先出 演算法的資料結構。設想有乙個直徑不大 一端開口一端封閉的竹筒。有若干個寫有編號的小球,小球的直徑比竹筒的直徑略小。現在把不同編號的小球放到竹筒裡面,可以發現一種規律 先放進去的小球只能後拿出來,反之,後放進去的小球能夠先拿出來。所以 先進後出 就是這種結構的特點。堆疊就是這...

const 的一些理解

以前覺得自己對const還是有些理解的,今天一兄弟問了乙個問題才讓我對這個東西又加深了些了解 class temp public void output void func const temp a a.output 就這麼簡單乙個東西,眨眼一看,沒什麼問題,但是編譯是不會通過的,因為func呼叫了...