view 座標分析
相對與父控制項
mtop
mleft
mbottom
mright
絕對值
mheight
mwidth
隱藏部分絕對值
mscrollx :上部隱藏部分 相對與mtop
mscrolly : 左邊隱藏部分 相對於mleft
以(mtop,mleft) 為座標原點
x y
以螢幕左上角為原點
rawx,rawy
事件分發
採用組合模式和包裝模式
由activity的dispatchtouchevent發起
一路向上傳遞,呼叫viewgroup 的dispatchtouchevent,找到最上層焦點view, view的dispatchtouchevent呼叫ontouchevent進行事件處理,如果事件被消耗掉,則設定target為該view,後續move,up,cancel等操作直接分發該view ,如果事件沒有消耗,則返回上層dispatchtouchevent後呼叫super.dispatchtouchevent處理,該方法就是view方法的dispatchtouchevent,所以會呼叫ontouchevent處理,如果未被處理,則一路向下傳遞,知道activity ontouchevent
另外只有down的時候不強制要求有target,否則,強制reset狀態
View 事件分發機制
小小總結下 詳細看1 viewgroup繼承自view,新增了onintercepttouchevent函式,view無此函式,故不會攔截 2 首先呼叫的是dispatchtouchevent,在此函式中進行判斷是否呼叫onintercepttouchevent,ontouch,ontoucheve...
View事件分發機制
擷取自 android開發藝術探索 三個重要方法 public boolean dispatchtouchevent motionevent ev 事件分發,return true向子view傳遞,return false傳遞到父view public boolean onintercepttouc...
關於View事件分發
關於事件分發 dispatchtouchevent 是否消費,不消費就傳遞給上一層 對於view,super是true,走ontouchevent 對於viewgroup,如果是super,走onintercepttouchevent去判斷是否進行攔截 如果是true,直接消費 但是不會觸發onto...