Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> tab in android

tab in android

編輯:Android開發實例

android裡提供了tab顯示的機制。既可以繼承TabActivity類也可以自己直接在普通的Activity中實現。下面講講這2種方法的相似和不同。

1.繼承TabActivity

   首先需要得到一個TabHost對象,在TabActivity中可以通過getTabHost()方法來獲得TabHost對象,getTabHost的源碼如下:

public TabHost getTabHost() {
            ensureTabHost();
             return mTabHost;

      }

private void ensureTabHost() {
        if (mTabHost == null) {
            this.setContentView(com.android.internal.R.layout.tab_content);
        }
    }

事實上在TabActivity中已經給你指定好了一個layout來專門用作tab顯示,com.android.internal.R.layout.tab_content的原型如下:

<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">
        <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent"
         android:layout_height="wrap_content" android:layout_weight="0" />
        <FrameLayout android:id="@android:id/tabcontent"
         android:layout_width="fill_parent" android:layout_height="0dip"
            android:layout_weight="1"/>
 </LinearLayout>
</TabHost>

這裡面必須包含3個元素,LinearLayout,TabWidget以及FrameLayout,我猜測TabWidget應該就是顯示標簽的組件,而FrameLayout是可以重疊覆蓋的,因而當你選擇某個標簽的時候,其相應的內容就顯示到framelayout裡面,那麼之前的標簽頁就被覆蓋掉了。

然後你需要在framelayout上面來添加你自己想顯示的view,通常的方式是你自己定義一個layout,然後inflate他並把framelayout作為他的rootgroup,

        LayoutInflater inflater_tab1 = LayoutInflater.from(this);  
        inflater_tab1.inflate(R.layout.tab1, mTabHost.getTabContentView());

最後需要在TabHost中添加你的Tab

調用mTabHost.addTab方法即可,這個方法能夠在tab中顯示文字,圖片以及tab下顯示的視圖。

2.在Activity中實現

    這裡你需要自己來實現TagHost的layout,可以在layout.main中添加TabHost元素,但是注意的是,必須實現上面所說的3個組件,而且注意id應該是系統所指定的那些id。而余下的事情就和上面類似了

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved