0

我知道这似乎是一个奇怪的问题,但对我来说,如果我可以从主 XML 文件指向的一组其他 xml 文件组成布局 XML,那将非常方便。原因是我在这个 xml 中定义了一些列表项视图,并希望在其他地方重用。是否有可能或唯一的方法就是应对和粘贴它?

4

3 回答 3

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

于 2012-06-27T15:47:22.567 回答
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"/>在许多布局中包含标题布局代码。主要的.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>
于 2012-06-27T15:48:10.757 回答
0

片段是不错的选择。这是一个示例: http: //mobile.tutsplus.com/tutorials/android/android-sdk_fragments/
和文档:http: //developer.android.com/guide/components/fragments.html

于 2012-06-27T15:51:20.103 回答