Android Studio FragmentTabHost使用

綜述

早期的TabHost被廢棄,因此使用新的FragmentTabHost代替TabHost

使用TabHost時,在TabActivity中將Activity作爲tab加入TabHost即可

使用FragmentTabHost時使用的是FragmentActivity中容納多個Fragment

FragmentTabHost使用時需要加入v4包,在Eclipse中需要人工導入v4包,AndroidStudio本身自己有v4包,再導入會導致v4包衝突

FragmentTabHost的佈局編寫:

  1. FrameLayout:真正容納底部標籤的佈局。
    1. FragmentTabHost:id使用系統id,tabHost
    2. TabWeight:固定的不知道有什麼意思。id使用系統id,tabs
    3. FrameLayout:要求必須按照這種格式寫,否則會報錯。使用系統id,tabcontent

我們之所以需要在上方加一個FrameLayout的目的是讓切換標籤放在下方,如果直接使用的下面的結構的話,標籤項會出現在界面上方。

FragmentTabhost使用的主界面程序編寫,繼承FragmentActivity

1、找到FragmentTabHost:通過findViewById(android.R.id.tabhost)
2、初始化FragmentTabHost:通過setup函數,參數傳入context,getSupportFragmentManager(),以及自己真正的標籤容器。
3、添加Tab三步:
①創建Tab:tabHost.newTabSpec(String tag);該tag可以用來找到Fragment
②設置標籤:tabSpec.setIndicator(View v);這裏一般使用組合控件,一般情況下標籤包括文字以及圖片兩個部分。
③添加Tab:tabHost.addTab(tabSpec, MyFragment.class, Bundle bundle);第二個參數是對應需要添加的Fragment,bundle是chuanruFragment的參數,不需要時填入null;該參數可以在Fragment中的onCreateView中通過Bundle bundle = this.getArguments()獲取。

Fragment的編寫

很多情況下我們會是從Activity改爲Fragment,在Fragment中主要函數有兩個,onCreateView中可以通過填充佈局實現界面佈局,在onViewCreated中可以通過findViewById找到對應的控件。

getActivity函數可以獲取該Fragment對應的FragmentActivity,getActivity.getApplicationContext可以獲取上下文。

在startActivityForResult時,返回結果操作只能通過FragmentActivity來處理,有FragmentActivity辨別後返回給對應的Fragment處理。

發佈了34 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章