1. 程式人生 > >android xml 中嵌入多個xml頁面

android xml 中嵌入多個xml頁面

採用TabHost的方式,可以方便在xml中插入獨立的多個xml,而不必將所有的程式碼寫入到一個xml中,降低了xml 黏連性。

簡單解釋:

建立以個mail.xml,其中加入two.xml和three.xml,同時建立每一個xml的activity,其中main的activity 繼承TabActivity.

mail.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>
two.xml

其中放置了幾個簡單的控制元件

<?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為要插入的圖片