建立復合控制項

2021-09-05 21:19:41 字數 2003 閱讀 9366

復合控制項是原子的、可重複使用的

widget

,它包含多個子控制項,以某種布局方式聯絡在一起。

當你建立乙個復合控制項的時候,你需要定義布局,外觀和它包含的

views

間的相互作用。復合控制項通過擴充套件乙個

viewgroup

建立。為了建立乙個復合控制項,你需要選擇乙個最適合放置子控制項的

layout

類來擴充套件它,如下面的框架**所示:

public class mycompoundview extends linearlayout

public mycompoundview(context context, attributeset attrs)

}由於要與

activity

一起使用,為復合控制項建立

ui的首選方式是使用

layout

資源。接下來的**片段顯示了乙個

layout

的xml

定義,layout

定義了乙個簡單的

widget

,由乙個

edittext

和乙個button

組成,button

負責清除內容:

<?xml version=」1.0」 encoding=」utf-8」?>

android:orientation=」vertical」

android:layout_width=」fill_parent」

android:layout_height=」fill_parent」>

android:id=」@+id/edittext」

android:layout_width=」fill_parent」

android:layout_height=」wrap_content」

/>

android:id=」@+id/clearbutton」

android:layout_width=」fill_parent」

android:layout_height=」wrap_content」

android:text=」clear」

/>

為了使用新的

widget

的layout

,需要重寫它的建構函式,並使用layoutinflate系統服務的

inflate

方法來膨脹

layout

資源。inflate

方法帶有

layout

資源的引數並返回乙個膨脹了的

view

。在這裡的情況下,返回的

view

應該是你正在建立的類,所以你要傳入乙個父

view

並設定自動把結果附加到父

view

上。如下面的**所示。

下面的**顯示了clearableedittext類。在建構函式裡,它膨脹了上面建立的

layout

資源,並獲得它裡面包含控制項的引用。另外,還呼叫了

hookupbutton

方法,它用來當

button

被按下時連線清除文字的功能。

public class clearableedittext extends linearlayout

}如果你喜歡在**裡構建

layout

,你可以像你為

activity

做的一樣去實現。下面的**片段顯示了重寫clearableedittext建構函式來建立和

xml中一樣的ui:

public clearableedittext(context context)

一旦螢幕已經構建完成,你可以為每個子控制項連線事件管理器來提供你需要的功能。在接下來的片段,hookupbutton方法填充了當

button

按下時清除文字的**:

private void hookupbutton()

});}

sample code:

057復合控制項

復合控制項實際上是控制項的集合。因此,可以按照使用者的需求將visual studi0 2010工具箱中的控制項任意組合起來,形成乙個復合控制項。在以後使用中,生成的這個復合控制項將作為乙個控制項來對待。復合控制項一般都是從usercontrol類派生而來的。復合控制項的建立步驟如下 1 建立乙個w...

winform 控制項開發1 復合控制項

哈哈是不是醜死了?做了乙個不停變色的按鈕,可以通過勾選checkbox停下來,如下 復合控制項果然簡單呀,我都能學會 1 using system 2using system.collections.generic 3using system.componentmodel 4using system...

復合控制項的開發

因為專案需要,前幾天自己寫了乙個復合控制項。復合控制項的開發過程中,主要是對屬性和事件的處理,理解屬性 事件的定義與使用,以及委託的使用,開發控制項就很容易。所謂的復合控制項,就是把一些基本的控制項結合起來,合成自己方便使用的控制項。比如結合了label和textbox的控制項就非常容易在窗體上布局...