2012-06-27 107 views
0

我知道這看起來可能是一個奇怪的問題,但對於我來說,如果我可以從主XML文件指向的一組其他XML文件構成佈局XML,那將非常方便。原因是我有這個XML中定義的一些列表項視圖,並希望在其他地方重用。它是可能的或唯一的方法就是應對和粘貼它?創建由其他XML文件組成的XML佈局文件?

回答

3

您可以使用「包括」標籤

<LinearLayout> 
    <include layout="@layout/toinclude1" /> 
    <include layout="@layout/toinclude1" /> 
</LinearLayout> 

另一種方式是ViewStub在一個單一的佈局不同的佈局文件。如果要加載異步佈局,你可以有:

<ViewStub android:id="@+id/stub" 
      android:inflatedId="@+id/subTree" 
      android:layout="@layout/mySubTree" 
      android:layout_width="120dip" 
      android:layout_height="40dip" /> 

而且在你的代碼,當你想你可以寫:

ViewStub stub = (ViewStub) findViewById(R.id.stub); 
View inflated = stub.inflate(); 

對於一些參考:http://developer.android.com/reference/android/view/ViewStub.html

1

說你有像這樣的header.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/somestyle" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:clickable="false" 
     android:paddingLeft="15dip" 
     android:scaleType="center" 
     android:src="@drawable/logo" /> 

</LinearLayout> 

您可以使用<include layout="@layout/header"/>以在多種佈局中包含頁眉佈局代碼。 main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/home_root" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
      <include layout="@layout/header"/> 
</LinearLayout>