android 淺入淺出看一下事件傳遞

2021-07-29 20:27:11 字數 1340 閱讀 1947

dispatchtouchevent (分發事件 retrue ture 分發,false 不分發)

onintercepttouchevent (攔截事件 etrue ture 攔截,false 不攔截)

ontouchevent (觸控事件 return true 消費,false 不消費)

在這裡空洞的解釋,就好像玩遊戲的時候,你女朋友各種找事兒一樣,永遠的無法理解,那麼咱們就來個兒童教學法吧,記住生活處處有真理,來個場景吧,祖孫三人乙個蘋果(只要咬了一口就不能給自己的子輩吃,但是可以給父輩吃),父輩拿到蘋果捨不得吃往下傳遞給子輩兒,就是這個了,那麼上面的三個事件就可以解釋為

1. dispatchtouchevent (從父輩拿蘋果 retrue ture 拿,false 不拿)

2. onintercepttouchevent (給子輩兒蘋果 etrue ture 不給,false 給)

3. ontouchevent (吃蘋果 return true 吃完,false 不吃完)

這裡差一張圖 大家可以用上面的思維考慮一下

//activity的dispatchtouchevent 方法 一開始就是交給window去處理的

//win的superdispatchtouchevent 返回true 那就直接結束了 這個函式了。返回false就意味

//這事件沒人處理,最終還是給activity的ontouchevent 自己處理 這裡的getwindow 其實就是phonewindow

public

boolean

dispatchtouchevent(motionevent ev)

if (getwindow().superdispatchtouchevent(ev))

return ontouchevent(ev);

}//來看phonewindow的這個函式 直接把事件傳遞給了mdecor

@override

public

boolean

superdispatchtouchevent(motionevent event)

//devorview就是 我們的rootview了 就是那個framelayout 我們的setcontentview裡面傳遞的那個layout

//就是這個decorview的 子view了

@override

public

final view getdecorview()

return mdecor;

}

淺入淺出Android安全(中文版)

譯者 飛龍 協議 cc by nc sa 4.0 pdf版 附目錄 第一章 android 1.1 android 技術棧 1.2 android 一般安全說明 第二章 android linux 核心層安全 2.1 應用沙盒 2.2 linux 核心層上的許可權約束 第三章 android 本地使...

深入淺出Android學習筆記(一)

在學習具體sdk和framework前先了解一下android產生 發展的過程。android 大事記 2004年 乙個新的公司成立,後被google收購,並被作為這個網際網路公司進入移動通訊市場的王牌。這個公司的名字就是android 他的主人 andy rubin.2007.11.5 googl...

理解一下python中的淺copy和深copy

最近在學習過程中,了解了一下,淺copy和深copy,做個記錄。所謂淺拷貝就是對引用的拷貝,所謂深拷貝就是對物件的資源的拷貝。首先,對賦值操作我們要有以下認識 賦值是將乙個物件的位址賦值給乙個變數,讓變數指向該位址 舊瓶裝舊酒 修改不可變物件 str tuple 需要開闢新的空間 修改可變物件 li...