Kev*_*ker 18 android android-layout android-view
我正在寻找一种方法将另一个布局膨胀到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>
Run Code Online (Sandbox Code Playgroud)
第二个布局
<?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>
Run Code Online (Sandbox Code Playgroud)
big*_*nes 35
有,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);
Run Code Online (Sandbox Code Playgroud)
那么当你想要改变时你可以删除它:
mainLayout.removeView(menuLayout);
Run Code Online (Sandbox Code Playgroud)
并以相同的方式添加另一个.
这将起作用,因为您要将布局添加为父布局的最后一个子项.如果你想在第一个位置添加它,你可以膨胀你的布局而不将它附加到父级(false
用作最后一个arg),并手动添加它指定索引:
mainLayout.addView(menuLayout, 0);
Run Code Online (Sandbox Code Playgroud)
我不确定我真的理解你的意思是"我不能只包括布局,因为我将使用这种方法将其他布局扩展到线框中." 但是,如果您需要在其他各种布局中多次放置第二个布局,请使用<include layout="@layout/the_second_layout" />
这些其他布局.
归档时间: |
|
查看次数: |
41143 次 |
最近记录: |