先看一下效果显示图
通过点击不同的tab能够使上方跳转到不同的界面
这里用到的工具就是FragmentTabHost:
图中FragmentTabHost就是下面黑色的标签栏:
一个标签栏包括5个tab,一个tab由图中元素组成。
下面看实际代码:
第一步在mainActivity.xml里建立FragmentTabHost:
其中readltabcontent就是点击及tab后显示内容的fragment,上边的狗狗图片。
注意一下fragmentHost的命名,和里边包含的的frameLayout。这两个布局空间的 id命名都是固定的而且是安卓本身的
**创建一个fragmentHost要5个tabSpec,一个tabspec需要设置一个indicator
而indicator是每个Tab相对应的view。这里的indicator可以理解为底部菜单一个可以点击的图标。**
总体步骤为:
1. Activity 要继承 FragmentActivity
2. 实例化fragmentHost及相关控件
private FragmentTabHost mTabHost;
mTabHost= (FragmentTabHost) findViewById(android.R.id.tabhost);
mTabHost.setup(this,getSupportFragmentManager(),R.id.realtabcontent);
- 创建tabSpec
- 构造indicatorView
- tabSpec.setIndicator(indicatorView)
- 创建点击tabSpec后对应显示的fragment
- mTabHost.addTab(tabSpec,Fragment,null);
第二步,构建indicator
一个tab长这样:
为了使代码更清晰我们可以吧一个添加体格tab所需要的元素title(名称)icon(图片); fragment(点击tab跳转的fragment)封装成一个Tab并添加settor 和gettor方法
代码如下
为了进一步方便,我们把需要用到的tab用一个数组存放起来:
封装好了之后就可以构建indicator了
建立indicator对应的xml文件;
完了~~~
第三步,构建tabspec,addtab
综合以上,把初始化tab的代码放在initab()方法中,在oncreat方法调用就行了。