Android布局技巧之創(chuàng)建可重用的UI組件
Android平臺提供了大量的UI構(gòu)件,你可以將這些小的視覺塊(構(gòu)件)搭建在一起,呈現(xiàn)給用戶復(fù)雜且有用的畫面。然而,應(yīng)用程序有時需要一些高級的視覺組件。為了滿足這一需求,并且能高效的實現(xiàn),你可以把多個標(biāo)準(zhǔn)的構(gòu)件結(jié)合起來成為一個單獨的、可重用的組件。
例如,你可以創(chuàng)建一個可重用的組件包含一個進度條和一個取消按鈕,一個Panel包含兩個按鈕(確定和取消動作),一個Panel包含圖標(biāo)、標(biāo)題和描述等等。簡單的,你可以通過書寫一個自定義的View來創(chuàng)建一個UI組件,但更簡單的方式是僅使用XML來實現(xiàn)。
在Android XML布局文件里,一般,每個標(biāo)簽都對應(yīng)一個真實的類實例(這些類一般都是View的子類)。UI工具包還允許你使用三個特殊的標(biāo)簽,它們不對應(yīng)具體的View實例:<requestFocus />、<merge />、<include />。這篇文章將描述如何使用<include />來創(chuàng)建一個單純的XML視覺組件。了解更多關(guān)于如何使用<merge />的資料,請參看之后更新的文章Android布局技巧之合并布局,尤其是它與<include />結(jié)合起來使用體現(xiàn)出來的強大威力。
<include />元素的作用如同它的名字一樣;它用于包含其它的XML布局。使用這個標(biāo)簽如下面的例子所示:
<com.android.launcher.Workspace android:id="@+id/workspace" android:layout_width="fill_parent" android:layout_height="fill_parent" launcher:defaultScreen="1"> <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> <include android:id="@+id/cell3" layout="@layout/workspace_screen" /> </com.android.launcher.Workspace>
在<include />中,只需要layout特性。這個特性,不帶android命名空間前綴,它表示你想包含的布局的引用。在這個例子中,相同的布局被包含了三次。這個標(biāo)簽還允許你重寫被包含布局的一些特性。上面的例子顯示了你可以使用android:id來指定被包含布局中根View的id;它還可以覆蓋已經(jīng)定義的布局id。相似的,你可以重寫所有的布局參數(shù)。這意味著任何android:layout_*的特性都可以在<include />中使用。下面是例子:
<include android:layout_width="fill_parent" layout="@layout/image_holder" /> <include android:layout_width="256dip" layout="@layout/image_holder" />
這個標(biāo)簽,在依據(jù)設(shè)備設(shè)置定制UI時表現(xiàn)得尤為有用。舉個例子,Activity的主要布局放置在layout/文件夾下,其它布局放置在layout-land/和layout-port/下。這樣,在垂直和水平方向時你可以共享大多數(shù)的UI布局。
include標(biāo)簽可以實現(xiàn)在一個layout中引用另一個layout的布局,這通常適合于界面布局復(fù)雜、不同界面有共用布局的APP中,比如一個APP的頂部布局、側(cè)邊欄布局、底部Tab欄布局、ListView和GridView每一項的布局等,將這些同一個APP中有多個界面用到的布局抽取出來再通過include標(biāo)簽引用,既可以降低layout的復(fù)雜度,又可以做到布局重用(布局有改動時只需要修改一個地方就可以了)。
include標(biāo)簽的使用方法:
include標(biāo)簽的使用很簡單,只需要在布局文件中需要引用其它布局的地方,使用layout="@layout/child_layout"就可以了:
<include layout="@layout/titlebar" />
關(guān)于include標(biāo)簽的相關(guān)內(nèi)容在今后的文章中會為大家進行分享,以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android notification 的總結(jié)分析
notification是一種出現(xiàn)在任務(wù)欄的提示,特別是在4.0以后notification改進了不少,本文內(nèi)容都是基于4.0及4.1以后總結(jié)來的2013-05-05淺析Android系統(tǒng)的架構(gòu)以及程序項目的目錄結(jié)構(gòu)
這篇文章主要介紹了Android系統(tǒng)的架構(gòu)以及程序項目的目錄結(jié)構(gòu),是安卓開發(fā)入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-04-04Android SpannableString設(shè)置超鏈接、顏色、字體等屬性
這篇文章主要介紹了Android SpannableString設(shè)置超鏈接、顏色、字體等屬性的相關(guān)資料,需要的朋友可以參考下2017-01-01說說在Android如何使用服務(wù)(Service)的方法
這篇文章主要介紹了說說在Android如何使用服務(wù)(Service)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06android RecyclerView實現(xiàn)條目Item拖拽排序與滑動刪除
本篇文章主要介紹了android RecyclerView實現(xiàn)條目Item拖拽排序與滑動刪除,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03