2015年3月1日 星期日

Android控制項TabWidget


  1. 標籤頁上的控制都還在同一個Activity上所以變數以及參考的共用與互用,不需額外撰寫程式傳遞,省掉很多麻煩 。
  2. TabWidget控制項不是完全沒有確定,分布在各個標籤頁的控制像增多以後,初始化的時後會全部出始,易造成資源大量流失,速度變慢。 但資源足夠(機器夠快,記憶體足)就不需擔心。
sample_tabwidget.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="目前選擇tab1"
            android:id="@+id/tab1" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="目前選擇tab2"
            android:id="@+id/tab2" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="目前選擇tab3"
            android:id="@+id/tab3" />
    </FrameLayout>

</LinearLayout>

SampleTabWidget.java
package com.example.win7.android_widget;

import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;

/**
 * Created by win7 on 2015/2/28.
 */
public class Sample_TabWidget extends TabActivity {
    private TabHost tab_TabHost;
    public void onCreate(Bundle savedIstanceState){
        super.onCreate(savedIstanceState);
        /*getTabHost()方法取得配置在目前的View上的TabWidget控制項*/
        tab_TabHost = getTabHost();
        LayoutInflater.from(this).inflate(R.layout.sample_tab_widget,tab_TabHost.getTabContentView(),true);
        /*TabWidget控制項addTab()方法動態加入TabPage標籤頁,注意在addTab()方法中直接乎叫newTabSpec()方法建立新標籤頁
                *再連續呼叫setIndicator()方法指派標籤頁的標籤文字,再接著呼叫setContent()方法指派給TextView控制項*/
        tab_TabHost.addTab(tab_TabHost.newTabSpec("TAB1").setIndicator("TAB1").setContent(R.id.tab1));
        tab_TabHost.addTab(tab_TabHost.newTabSpec("TAB2").setIndicator("TAB2").setContent(R.id.tab2));
        tab_TabHost.addTab(tab_TabHost.newTabSpec("TAB3").setIndicator("TAB3").setContent(R.id.tab3));
    }
}

沒有留言:

張貼留言