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...