TabHost 和 FragmentTabHost
生活随笔
收集整理的這篇文章主要介紹了
TabHost 和 FragmentTabHost
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TabHost命名空間:android.widget.TabHost初始化函數(必須在addTab之前調用):setup(); 包含兩個子元素:1.Tab標簽容器TabWidget(@android:id/tabs)2.Tab內容容器FrameLayout(@android:id/tabcontent)FragmentTabHost命名空間:android.support.v4.app.FragmentTabHostandroid.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 中控制標簽元素的選擇。
總結
以上是生活随笔為你收集整理的TabHost 和 FragmentTabHost的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 血压正常范围是多少
- 下一篇: 自己动手搭建Git服务器-SCM-Man