android xml 中嵌入多個xml頁面
阿新 • • 發佈:2019-01-25
採用TabHost的方式,可以方便在xml中插入獨立的多個xml,而不必將所有的程式碼寫入到一個xml中,降低了xml 黏連性。
簡單解釋:
建立以個mail.xml,其中加入two.xml和three.xml,同時建立每一個xml的activity,其中main的activity 繼承TabActivity.
mail.xml
two.xml<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" > <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="30dp" android:background="#ff202020" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> </LinearLayout> </TabHost>
其中放置了幾個簡單的控制元件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Table1" android:textAppearance="?android:attr/textAppearanceLarge" /> <RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="RadioButton" /> <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
three.xml 放置了一個TextView
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Table2" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
其中在mainActivity中的onCreate函式中的新增程式碼如下:
TabHost tabHost =getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, TwoActivity.class);//用於跳轉
spec = tabHost.newTabSpec("two").setIndicator("Table1", null).setContent(intent);
tabHost.addTab(spec);//新增Tab
intent = new Intent().setClass(this, ThreeActivity.class);
spec = tabHost.newTabSpec("three").setIndicator("Table2", null).setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);//選擇預設的Tab
補充:
如果想在Tab顯示部分插入圖片可以採用如下方式:
Resources res = getResources();
spec = tabHost.newTabSpec("two").setIndicator("", res.getDrawable(R.drawable.ic_tab_use)).setContent(intent);//ic_tab_use為要插入的圖片