自定義元件 學習

2021-05-25 23:04:57 字數 976 閱讀 2892

通過對android的學習,大家都知道,谷歌提供的api demo的一些基本元件雖然很豐富,但遠遠滿足不了我們設計華麗介面的需求,所以這就需要我們自己來定義我們所需要的元件......還好谷歌提供一些自定義控制項的一些方法.....現將本人從網上收集以及本人學習的自定義控制項的使用方法列下, 供各位參考,如有不妥之處歡迎各位指教!至於原始碼將在後期不定期貼出.....

一般從layout類開始,建立乙個layout類的派生類。也許在combo box我們會選擇水平方向的linearlayout作為父類。記住,其他的layout類是可以巢狀到裡面的,因此混合元件可以是任何元件的混合。注意,正如activity一樣,你既可以使用外部xml檔案來宣告你的元件,也可以巢狀在**中。

在新的混合元件的建構函式中,首先,呼叫所有的父類的建構函式,傳入對應的引數。然後可以設定你的混合元件的其他的一些方面,在哪建立edittext元件,又在哪建立popuplist元件。注意:你同時也可以在xml檔案中引入一些自己的屬性和引數,這些屬性和引數也可以被你的混合元件所使用。

你也可以建立時間***去監聽新元件中view類觸發的事件,例如,對list選項單擊事件的監聽,你必須在此時間發生後更新你edittext的值。

你可能建立自己的一些屬性,帶有訪問和修改方法。例如,允許設定edittext初始值並且提供訪問它的方法。

在layout的派生類中,你沒有必要去過載ondraw()和onmeasure()方法,因為layout會有比較好的預設處理。但是,如果你覺得有必要你也可以過載它。

你也可能過載一些on系列函式,例如通過onkeydown()的過載,你可以通過按某個鍵去選擇列表中的對應的值。

總之,把layout類作為基類有下面幾個優點:

正如activity一樣,你也可以通過xml檔案去宣告你的新元件,或者你也可以在**中巢狀。

ondraw()函式和onmeasure()函式是沒有必要過載的,兩個函式已經做得很好了。

你可以很快的建立你的混合元件,並且可以像單一元件那樣使用。

Android學習 自定義元件

public class mylistview extends listview public mylistview context context public mylistview context context,attributeset attrs,int defstyle override ...

自定義元件

myedittext 清除輸入的資料 setcompunddrawable 設定edittext ontouchevent ondraw 作用 繪製view顯示的內容,由系統自動呼叫 常用類 paint,canvas invalidate,postinvalidate 貪吃蛇原理 改變集合中的資料,...

自定義元件

自定義控制項 1.抽取layout如 list item home.xml 2.寫乙個類繼承1中的layout,實現父類 相對布局 的構造方法 3.使用 自定義控制項的屬性 1.布局檔案裡自定義乙個命名空間 xmlns my 2.在res的values目錄下描述自定義屬性的檔案 3.在布局檔案裡寫你...