Android的FragmentTabHost使用总结(顶部或底部菜单栏)
来源:互联网 发布:黑客python 编辑:程序博客网 时间:2024/05/20 07:36
前言:
我们经常看到一些app的自带一些标签,并且可以来回进行切换,
本章我们就通过FragmentTabHost来学习一下其如何实现,效果图如下:
步骤一:
编写布局文件
<android.support.v4.app.FragmentTabHost android:layout_width="match_parent" android:layout_height="match_parent" android:id="@android:id/tabhost" > <!-- 系统要求,具体原因暂时还未追究,不然就会报错 这个FrameLayout并不是显示内容的fragment 且其id必须为tabcontent --> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0"/></android.support.v4.app.FragmentTabHost><!-- 用来存放标签所对应的内容,用来显示我们的fragment 若其放置在FragmentTabHost下边,则标签就位于上边, 反之,标签则位于下边 --><FrameLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:id="@+id/fragment" ></FrameLayout>
步骤二:
Activity要继承于FragmentActivity
/** * 由于AppCompatActivity继承FragmentActivity * 所以无需再去继承FragmentActivity */public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);..... }}
步骤三:
添加Tab到TabHost中,且让Tab与 Tab所要显示的内容(fragment)绑定在一起
mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);/** * 在setup()里边,其才去获取到TabWidget,所以在此之前,不能直接调用getTabWidget()方法; */mTabHost.setup(this, getSupportFragmentManager(), R.id.fragment);/** *addTab:添加标签到TabHost中 * setIndicator:表示设置标签的logo */mTabHost.addTab(mTabHost.newTabSpec("blue").setIndicator("blue"), BlueFragment.class, null);mTabHost.addTab(mTabHost.newTabSpec("orange").setIndicator("orange"), OrangeFragment.class, null);mTabHost.addTab(mTabHost.newTabSpec("green").setIndicator("green"), GreenFragment.class, null);
总结:
1>
Tab存在于TabWidget内,而TabWidget是存在于TabHost内。与此同时,
在TabHost内无需在写一个TabWidget,系统已经内置了一个TabWidget
2>
FragmentTabHost的布局文件中,需要有如下子布局:
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0"/>
3>
关于fragment内容的布局,其位置可以放置在FragmentTabHost外面的上边,里边,或者外边的下边都可以;
当放置在上边时,那么标签是位于底部的;
当放置在里边或者外面的下边时,则此时,标签是位于顶部的;
参考:
FragmentTabHost
源码:
FragmentTabHost示例源码
0 0
- Android的FragmentTabHost使用总结(顶部或底部菜单栏)
- Android的FragmentTabHost使用(顶部或底部菜单栏)
- Android开发:底部Tab菜单栏 FragmentTabHost 问题总结
- android 底部菜单栏(仿微信顶部菜单栏)
- Android仿微信底部菜单栏+顶部菜单栏
- Android仿微信底部菜单栏+顶部菜单栏
- 【Android】底部菜单栏--Fragment+FragmentTabHost实现
- #Android笔记#fragment+fragmentTabHost实现底部菜单栏
- 底部菜单栏:FragmentTabHost
- Android仿微信底部菜单栏+顶部菜单栏(附源码)
- Android仿微信底部菜单栏+顶部菜单栏(附源码)
- Android仿微信底部菜单栏+顶部菜单栏(附源码)
- Android底部Tab菜单栏(FragmentTabHost+ViewPager+Fragment)
- 使用DrawerLayout,FragmentTabHost实现测滑式底部菜单栏界面
- FragmentTabHost+Fragment实现底部菜单栏
- Fragment+FragmentTabHost实现底部菜单栏
- FragmentTabHost实现底部菜单栏效果~~
- Fragment+FragmentTabHost实现底部菜单栏
- 树状数组
- “外星人计算圆周率的程序”原理及性能分析(上)
- 【bzoj 3747】[POI2015]Kinoman(线段树)
- android ListView几个比较特别的属性
- 【poj3233】 Matrix Power Series
- Android的FragmentTabHost使用总结(顶部或底部菜单栏)
- poj2485 Highways(最小生成树水题)
- 实验2 Activity和Intent-任务2:标准体重计算器
- 重叠区间个数
- 清理tomcat缓存的步骤
- webservice: Could not initialize Service NoSuchMethodException getPortClassMap()
- nginx的学习笔记
- Java枚举
- c经典编程实例