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