Android控制項結構和自定義控制項 7

2021-09-24 22:49:53 字數 1278 閱讀 2570

這是乙個簡單的布局:最外層是乙個viewgroupa,裡面包含乙個viewgroupb,然後b裡面包含乙個子view myview。

我們先看事件傳遞及處理的3個方法:

1、public boolean dispatchtouchevent(motionevent ev); 事件分發

2、public boolean onintercepttouchevent(motionevent ev); 事件攔截方法

3、public boolean ontouchevent(motionevent ev); 處理觸控事件。  

其中view是沒有事件攔截的方法。

傳遞機制

事件傳遞順序:觸控事件---->viewgroupa---->viewgroupb---->myview

事件傳遞的時候,先執行public boolean dispatchtouchevent(motionevent ev);方法,再執行public boolean onintercepttouchevent(motionevent ev);方法。如果父容器viewgroup沒有攔截,觸控事件將從最外面的根布局傳遞到最裡面的子view

事件處理的順序是:myview---->viewgroupb---->viewgroupa事件處理(消費)執行public boolean ontouchevent(motionevent ev);方法。

當父容器viewgrouponintercepttouchevent(motionevent ev)方法返回false的時候,父容器都不會攔截事件,將會繼續分發事件給它的子viewgroup或者子view。當viewgroup或者view的ontouchevent(motionevent ev)返回true,將不再進行事件處理的傳遞,也就是不再傳遞給上級。

Android 自定義控制項

幹android也有一段的時間了,自定義這塊的東西覺得還是很有比較複習一下基礎的東西。自定義控制項和自定義元件基本上的使用都是在專案中基本的android控制項滿足不了需求的時候使用的。所以,如果要高出特別炫的特效,或者比較特殊的控制項排列方式,例如瀑布流,那麼就要好好學學自定義咯。首先,先簡單的介...

android自定義控制項

android自定義控制項 二 入門,繼承view 說說android 兩種為自定義元件新增屬性的使用方法和區別 自定義控制項的屬性 自定義控制項 今天花了3,4個小時看了自定義控制項,看 懂了,還沒有實踐,因為時間不夠,日後實踐。總結下 自定義控制項有3種方式 繼承已有控制項 繼承乙個容器控制項,...

Android自定義控制項

android學習筆記,整理給自己複習的時候看的,謝謝!1.自定義開關 1.宣告介面物件 public inte ce onswitchstateupdatelistener 2.新增設定介面物件的方法,外部進行呼叫 public void setonswitchstateupdatelistene...