標籤:
TabHost 命名空間: android.widget.TabHost 初始化函數(必須在addTab之前調用): setup(); 包含兩個子項目: 1.Tab標籤容器TabWidget(@android:id/tabs) 2.Tab內容容器FrameLayout(@android:id/tabcontent)FragmentTabHost 命名空間: android.support.v4.app.FragmentTabHost android.support.v13.app.FragmentTabHost 初始化函數(必須在addTab之前調用): setup(this, getSupportFragmentManager(), R.id.realtabcontent); 包含三個子項目: 1.Tab標籤 容器TabWidget(@android:id/tabs) 2.Tab內容 容器FrameLayout [寬高皆為0dp](@android:id/tabcontent) 3.Tab內容 容器FrameLayout [真正的容器](@+id/RealTabContent)疑問:為什麼同時存在TabContent 和 RealTabContent 兩個FrameLayout?答疑:《關於FragmentTabHost中TabWidget不能移到螢幕下面的Bug》 http://blog.csdn.net/wklbeta/article/details/11329207資料:《Android開發:使用Fragment改造TabActivity》 http://www.blogjava.net/amplifier/archive/2012/12/27/393409.html經驗 - 實現Tab功能的幾種方式: 1.(廢棄)繼承自TabActivity + TabHost 布局 + Activity 內容 1.1:TabActivity為ActivityGroup[在版本13裡被放棄]子類 1.2:使用getTabHost() 獲得TabHost 對象 1.3:使用 newTabSpec(...).setContent(Intent) 添加Tab標籤與內容 2.(廢棄)繼承自ActivityGroup + TabHost布局 + Activity 內容 2.1:ActivityGroup在版本13裡被放棄 2.2:使用findViewById 獲得TabHost 對象 2.3:使用setup(new LocalActivityManager(this, true))初始化 2.4:使用 newTabSpec(...).setContent(Intent) 添加Tab標籤與內容 3.(簡單)繼承自FragmentActivity + FragmentTabHost 布局 + Fragment 內容 3.1:使用findViewById 獲得FragmentTabHost 對象 3.2:使用setup(this, getSupportFragmentManager(), R.id.realtabcontent)初始化 3.3:使用addTab(newTabSpec().setIndicator(),Fragment.class, null) 添加Tab標籤與內容 4.(複雜)繼承自FragmentActivity + TabHost 布局 + ViewPager布局 + Fragment 內容 4.1:使用findViewById 獲得TabHost 對象 4.2:使用setup()初始化 4.3:使用TabHost.addTab(tabSpec.setContent(DummyTabFactory));添加Tab標籤與空內容 4.4:在TabHost.onTabChanged中控制ViewPager的實際顯示 4.5:滑動時在ViewPager.onPageSelected 中控制Tab標籤的選擇。 PS:當Tab標籤數量固定且不追求和系統保持一致的標籤效果,的情況下這裡的TabHost布局有些多餘。 如 :特有應用需要的Tab標籤固定,且有自己的一套顯示效果,那麼這裡完全無需TabHost布局。 5.(DIY)繼承自FragmentActivity + 自訂布局 + ViewPager布局 + Fragment 內容 5.1:自訂布局中嵌入固定Tab標籤元素 5.2:在標籤元素點擊事件中控制ViewPager的實際顯示 5.3:滑動時在ViewPager.onPageSelected 中控制標籤元素的選擇。
By:AsionTang
At:2013年9月27日 10:29:08
Asion Tang出處:http://asiontang.cnblogs.com
[轉]Android學習筆記:TabHost 和 FragmentTabHost