Android布局技巧之創(chuàng)建可重用的UI組件
Android平臺提供了大量的UI構(gòu)件,你可以將這些小的視覺塊(構(gòu)件)搭建在一起,呈現(xiàn)給用戶復(fù)雜且有用的畫面。然而,應(yīng)用程序有時需要一些高級的視覺組件。為了滿足這一需求,并且能高效的實現(xiàn),你可以把多個標準的構(gòu)件結(jié)合起來成為一個單獨的、可重用的組件。
例如,你可以創(chuàng)建一個可重用的組件包含一個進度條和一個取消按鈕,一個Panel包含兩個按鈕(確定和取消動作),一個Panel包含圖標、標題和描述等等。簡單的,你可以通過書寫一個自定義的View來創(chuàng)建一個UI組件,但更簡單的方式是僅使用XML來實現(xiàn)。
在Android XML布局文件里,一般,每個標簽都對應(yīng)一個真實的類實例(這些類一般都是View的子類)。UI工具包還允許你使用三個特殊的標簽,它們不對應(yīng)具體的View實例:<requestFocus />、<merge />、<include />。這篇文章將描述如何使用<include />來創(chuàng)建一個單純的XML視覺組件。了解更多關(guān)于如何使用<merge />的資料,請參看之后更新的文章Android布局技巧之合并布局,尤其是它與<include />結(jié)合起來使用體現(xiàn)出來的強大威力。
<include />元素的作用如同它的名字一樣;它用于包含其它的XML布局。使用這個標簽如下面的例子所示:
<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命名空間前綴,它表示你想包含的布局的引用。在這個例子中,相同的布局被包含了三次。這個標簽還允許你重寫被包含布局的一些特性。上面的例子顯示了你可以使用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" />
這個標簽,在依據(jù)設(shè)備設(shè)置定制UI時表現(xiàn)得尤為有用。舉個例子,Activity的主要布局放置在layout/文件夾下,其它布局放置在layout-land/和layout-port/下。這樣,在垂直和水平方向時你可以共享大多數(shù)的UI布局。
include標簽可以實現(xiàn)在一個layout中引用另一個layout的布局,這通常適合于界面布局復(fù)雜、不同界面有共用布局的APP中,比如一個APP的頂部布局、側(cè)邊欄布局、底部Tab欄布局、ListView和GridView每一項的布局等,將這些同一個APP中有多個界面用到的布局抽取出來再通過include標簽引用,既可以降低layout的復(fù)雜度,又可以做到布局重用(布局有改動時只需要修改一個地方就可以了)。
include標簽的使用方法:
include標簽的使用很簡單,只需要在布局文件中需要引用其它布局的地方,使用layout="@layout/child_layout"就可以了:
<include layout="@layout/titlebar" />
關(guān)于include標簽的相關(guān)內(nèi)容在今后的文章中會為大家進行分享,以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android 中使用ContentObserver模式獲取短信用正則自動填充驗證碼
這篇文章主要介紹了Android 中使用ContentObserver模式獲取短信用正則自動填充驗證碼,首先使用了ContentObserver監(jiān)聽短信,然后從短信中用正則的分組去拿到驗證碼,具體實現(xiàn)代碼大家參考下本文2017-02-02
android使用DataBinding來設(shè)置空狀態(tài)
本篇文章主要介紹了android使用DataBinding來設(shè)置空狀態(tài),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
Android 中Volley二次封裝并實現(xiàn)網(wǎng)絡(luò)請求緩存
這篇文章主要介紹了Android 中Volley二次封裝并實現(xiàn)網(wǎng)絡(luò)請求緩存的相關(guān)資料,希望通過本文能幫助到大家,徹底會使用Volley,需要的朋友可以參考下2017-09-09
Android百度地圖應(yīng)用之創(chuàng)建顯示地圖
這篇文章主要為大家詳細介紹了Android百度地圖應(yīng)用之創(chuàng)建顯示地圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-06-06
Android自定義View的三種實現(xiàn)方式總結(jié)
本篇文章主要介紹了Android自定義View的三種實現(xiàn)方式總結(jié),非常具有實用價值,需要的朋友可以參考下。2017-02-02

