安卓開發(fā)之創(chuàng)建可復(fù)用的UI組件
來源:易賢網(wǎng) 閱讀:1054 次 日期:2014-08-21 16:07:55
溫馨提示:易賢網(wǎng)小編為您整理了“安卓開發(fā)之創(chuàng)建可復(fù)用的UI組件”,方便廣大網(wǎng)友查閱!

Android平臺(tái)提供了廣泛的UI可視組件---widget,把這些小的可視的構(gòu)件組合到一起,就可以給用戶提供復(fù)雜而有用的界面。但是,應(yīng)用程序經(jīng)常需要一些高級(jí)可視組件,要滿足這樣的需求,并要達(dá)到高效的目的,可以把一些標(biāo)準(zhǔn)的widget組合成一個(gè)新的可復(fù)用的組件。

例如,包含一個(gè)進(jìn)度條和一個(gè)取消按鈕的操作進(jìn)度表示組件;包含兩個(gè)按鈕的面板(取消和確認(rèn)操作);帶有一個(gè)圖標(biāo)、標(biāo)題和說明的面板等等。通過編寫定制的View類能夠很容易的創(chuàng)建UI組件,但是使用XML會(huì)更加容易。

在Android XML布局文件中,每個(gè)標(biāo)簽都對應(yīng)于一個(gè)實(shí)際的類實(shí)例(這個(gè)類始終是View類的子類),Android的UI工具集中還有三個(gè)特殊的標(biāo)簽,它們沒有對應(yīng)的View實(shí)例:<requestFocus />、<merge />和<include />。本文展示如何使用<include />標(biāo)簽來創(chuàng)建純粹的XML可視組件。有關(guān)如何使用<merge />的信息,請看“合并布局”的文章,它跟<include />

組合起來使用,功能會(huì)更強(qiáng)大。

顧名思義,<include />標(biāo)簽是要在當(dāng)前布局中包含另一個(gè)XML布局。這個(gè)標(biāo)簽的使用就像下例顯示的那樣簡單,例子中直接引用了Android的Home應(yīng)用程序的源代碼:

<com.android.launcher.Workspace

android:id="@+id/workspace"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

launcher:defaultScreen="1">

<includeandroid:id="@+id/cell1"layout="@layout/workspace_screen"/>

<includeandroid:id="@+id/cell2"layout="@layout/workspace_screen"/>

<includeandroid:id="@+id/cell3"layout="@layout/workspace_screen"/>

</com.android.launcher.Workspace>

在<include />中只有l(wèi)ayout屬性是必須的。這個(gè)屬性的值不帶有android命名空間的前綴,它是希望要包含的布局文件的引用。在例子中,相同的布局被包含了三次。這個(gè)標(biāo)簽還能夠覆蓋一些被包含布局的屬性。上例中的android:id指定了被包含布局的根View的id;如果定義了一個(gè)新的id,那么被包含布局的這個(gè)id也會(huì)被覆蓋。類似的,可以覆蓋所有的布局參數(shù)。就意味著任何android:layout_*屬性都可以在<include />標(biāo)簽中使用。以下示例中,相同的布局被包含了兩次,但只有第一次覆蓋了布局屬性:

<!-- override the layout height and width -->

<includelayout="@layout/image_holder"

android:layout_height="fill_parent"

android:layout_width="fill_parent"/>

<!-- do not override layout dimensions; inherit them from image_holder -->

<includelayout="@layout/image_holder"/>

警告:如果要覆蓋布局的尺寸,就必須同時(shí)覆蓋android:layout_height和android:layout_width屬性---不能只覆蓋高度或只覆蓋寬度。如果只覆蓋其中一個(gè),不會(huì)有任何效果。沒有覆蓋的屬性,依然會(huì)繼承源布局中的屬性設(shè)置。

在需要根據(jù)設(shè)備的配置來定制UI部分時(shí),這個(gè)標(biāo)記時(shí)特別有用的。例如,Activity的主布局可以被放到layout/目錄中,然后包含保存在layout-land/和layout-port/目錄中的另外布局,這樣就可以在橫屏和縱屏的布局中共享大多數(shù)的UI元素了。

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:安卓開發(fā)之創(chuàng)建可復(fù)用的UI組件
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)