我知道这似乎是一个奇怪的问题,但对我来说,如果我可以从主XML文件指向的一组其他xml文件中编写布局XML,那将非常方便。原因是我在这个xml中定义了一些列表项视图,并希望在其他地方重用它。是可能还是唯一的方法就是应对并粘贴它?
答案 0 :(得分:3)
您可以使用“include”标记
在单个布局中包含不同的布局文件<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 :(得分: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>
答案 2 :(得分:0)