- 標籤頁上的控制都還在同一個Activity上所以變數以及參考的共用與互用,不需額外撰寫程式傳遞,省掉很多麻煩 。
- 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));
}
}
沒有留言:
張貼留言