Android布局技巧之建立可重用的UI組件_Android

來源:互聯網
上載者:User

Android平台提供了大量的UI構件,你可以將這些小的視覺塊(構件)搭建在一起,呈現給使用者複雜且有用的畫面。然而,應用程式有時需要一些進階的視覺組件。為了滿足這一需求,並且能高效的實現,你可以把多個標準的構件結合起來成為一個單獨的、可重用的組件。

例如,你可以建立一個可重用的組件包含一個進度條和一個取消按鈕,一個Panel包含兩個按鈕(確定和取消動作),一個Panel包含表徵圖、標題和描述等等。簡單的,你可以通過書寫一個自訂的View來建立一個UI組件,但更簡單的方式是僅使用XML來實現。

在Android XML布局檔案裡,一般,每個標籤都對應一個真實的類執行個體(這些類一般都是View的子類)。UI工具包還允許你使用三個特殊的標籤,它們不對應具體的View執行個體:<requestFocus />、<merge />、<include />。這篇文章將描述如何使用<include />來建立一個單純的XML視覺組件。瞭解更多關於如何使用<merge />的資料,請參看之後更新的文章Android布局技巧之合并布局,尤其是它與<include />結合起來使用體現出來的強大威力。

<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;它還可以覆蓋已經定義的布局id。相似的,你可以重寫所有的布局參數。這意味著任何android:layout_*的特性都可以在<include />中使用。下面是例子:

<include android:layout_width="fill_parent" layout="@layout/image_holder" /><include android:layout_width="256dip" layout="@layout/image_holder" />

這個標籤,在依據裝置設定定製UI時表現得尤為有用。舉個例子,Activity的主要布局放置在layout/檔案夾下,其它布局放置在layout-land/和layout-port/下。這樣,在垂直和水平方向時你可以共用大多數的UI布局。

include標籤可以實現在一個layout中引用另一個layout的布局,這通常適合於介面布局複雜、不同介面有共用布局的APP中,比如一個APP的頂部布局、側邊欄布局、底部Tab欄布局、ListView和GridView每一項的布局等,將這些同一個APP中有多個介面用到的布局抽取出來再通過include標籤引用,既可以降低layout的複雜度,又可以做到布局重用(布局有改動時只需要修改一個地方就可以了)。

include標籤的使用方法:
include標籤的使用很簡單,只需要在布局檔案中需要引用其它布局的地方,使用layout="@layout/child_layout"就可以了:
<include layout="@layout/titlebar" />

關於include標籤的相關內容在今後的文章中會為大家進行分享,以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.