Android:如何dynamic地包含XML布局?

我想分解我的用户界面到几个XML布局。 第一个是主布局,其他的则是内容布局。

我希望能够在运行时dynamic地设置哪些content_layout,所以我不想在我的XML文件中设置"layout="@+layout/content_layout"

这是我的布局:

main_layout.xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="600dp" android:layout_height="800dp" > <TextView android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" /> <include /> <!-- I WANT TO INCLUDE MY CONTENT HERE --> <Button android:id="@+id/cancelButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="Cancel" /> </RelativeLayout> 

content_layout.xml:

 <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/whatever" android:layout_height="wrap_content" android:layout_width="fill_parent" /> 

content_layout2.xml:

 <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/whatever2" android:layout_height="wrap_content" android:layout_width="fill_parent" /> 

我怎样才能做到这一点?

谢谢!

Solutions Collecting From Web of "Android:如何dynamic地包含XML布局?"

 <RelativeLayout android:id="@+id/rl" ... 

在你的代码中:

 // get your outer relative layout RelativeLayout rl = (RelativeLayout) findById(R.id.rl); // inflate content layout and add it to the relative layout as second child // add as second child, therefore pass index 1 (0,1,...) LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); rl.addView(1, layoutInflater.inflate(R.layout.content_layout, this, false) ); 

你可以尝试使用ViewStub ,只是改变它将以编程方式膨胀的布局。

这个答案讨论使用一个ViewStub。