充满视图/布局到另一个布局?

我正在寻找一种方式来膨胀另一个布局到android的第一个布局。 如何做到这一点? 这是两个XML文件。 第一个是主要布局,第二个是布局,我想膨胀到第一个。

我不能只包含布局,因为我将使用此方法将其他布局充填到稍后的线框中。

代码也在: http : //pastebin.com/wjZ4s1cs作为stackoverflow不喜欢XML。

<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ff000000" > <TextView android:id="@+id/headerMenuText" android:text="@string/main_menu_title" android:layout_height="wrap_content" android:layout_width="fill_parent" android:textSize="16pt" android:paddingTop="10px" android:paddingBottom="10px" android:gravity="center" > </TextView> <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_y="100dip" android:gravity="center" android:layout_gravity="center" > <TableRow android:gravity="center" android:layout_gravity="center"> <ImageView android:id="@+id/menuItem1" android:layout_height="101dip" android:layout_width="89dip" android:src="@drawable/icon_settings" ></ImageView> <ImageView android:id="@+id/menuItem2" android:layout_height="101dip" android:layout_width="89dip" android:src="@drawable/icon_system_restart" ></ImageView> <ImageView android:id="@+id/menuItem3" android:layout_height="101dip" android:layout_width="89dip" android:src="@drawable/icon_game_history" ></ImageView> <ImageView android:id="@+id/menuItem4" android:layout_height="101dip" android:layout_width="89dip" android:src="@drawable/icon_game_correction" ></ImageView> <ImageView android:id="@+id/menuItem5" android:layout_height="101dip" android:layout_width="89dip" android:src="@drawable/icon_game_other" ></ImageView> </TableRow> <TableRow android:gravity="center"> <TextView android:id="@+id/menuItemText1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/main_menu_item_text_1" android:layout_gravity="center" android:gravity="center" ></TextView> <TextView android:id="@+id/menuItemText2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/main_menu_item_text_2" android:layout_gravity="center" android:gravity="center" ></TextView> <TextView android:id="@+id/menuItemText3" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/main_menu_item_text_3" android:layout_gravity="center" android:gravity="center" ></TextView> <TextView android:id="@+id/menuItemText4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/main_menu_item_text_4" android:layout_gravity="center" android:gravity="center" ></TextView> <TextView android:id="@+id/menuItemText5" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/main_menu_item_text_5" android:layout_gravity="center" android:gravity="center" ></TextView> </TableRow> </TableLayout> <View or layout android:id="@+id/screen_layout_bottom_menu" android:layout_width="fill_parent" android:layout_height="wrap_content" > </View or layout> </AbsoluteLayout> 

第二个布局

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen_bottom_menu" android:layout_height="wrap_content" android:layout_width="fill_parent" > <TableLayout android:id="@+id/screen_bottom_menu_table" android:layout_height="wrap_content" android:layout_width="fill_parent" > <TableRow> <ImageView android:id="@+id/screen_bottom_menu_button_back" android:src="@drawable/back"> </ImageView> <ImageView android:id="@+id/screen_bottom_menu_button_ok" android:src="@drawable/checkmark"> </ImageView> <ImageView android:id="@+id/screen_bottom_menu_button_cancel" android:src="@drawable/xmark"> </ImageView> <ImageView android:id="@+id/screen_bottom_menu_button_key_toggle" android:src="@drawable/lock"> </ImageView> </TableRow> </TableLayout> </LinearLayout> 

ViewStub但我从来没有使用它,我认为它不能被使用多次。

您可以充气菜单布局并将其附加到主布局:

 AbsoluteLayout mainLayout = (AbsoluteLayout) findViewById(R.id.your_main_layout); LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true); 

那么当你想改变你可以删除它:

 mainLayout.removeView(menuLayout); 

并添加另一个相同的方式。

这将工作,因为你想添加布局作为父布局的最后一个孩子。 如果你想添加它,比如说,在第一个位置,你可以膨胀你的布局而不附加到父(使用false作为最后一个参数),并手动添加它,指定索引:

 mainLayout.addView(menuLayout, 0); 

我不确定我真的明白你的意思,“我不能只包括布局,因为我将使用这种方法将其他布局膨胀成线框。” 但是,如果您需要将第二个布局多次放置在其他各种布局中,请在这些其他布局中使用<include layout="@layout/the_second_layout" />