android中TabHost使用

工作中常常使用到TabHost切换页面(一个界面看起来有多个页面显示)我们要注意两个概念:

1.TabHost是标签页的集合

2.TabSpec是标签

当我们得到TabHost对象后,可以使用addTab(tabspec)添加多个标签页.直接上实例代码..

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >

            <!-- 热门视频 -->

            <LinearLayout
                android:id="@+id/line1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="热门视频" />
            </LinearLayout>
            <!-- 个人视频 -->

            <LinearLayout
                android:id="@+id/line2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="个人视频" />
            </LinearLayout>
        </FrameLayout>
    </LinearLayout>
</TabHost>

这里解释下..使用帧布局的目的是用于内容的显示...并且将设置权重为1,用来填满剩余的空间

然后我们可以在MainActivity中

第一步:我们要找到TabHost...

根据之前已经定义好的id,这里用的是自己定义的id.而不是系统的@android :id/tabhost,

mTabHost=(TabHost) findViewById(R.id.tabhost);

第二步:我们要找到TabWidget标签页和FrameLayout(这一步很重要)

mTabHost.setup();

这是TabHost内部的一个方法作用就是找到TabWidget标签页和FrameLayout,可以在源码中setup()可以查看,

注意的是TabWidget和FrameLayout分别对应的id是@android :id/tabs,@android :id/tabcontent

第三步:使用addTab(tabspec)添加标签页了

TabSpec tabSpec1=mTabHost.newTabSpec("tab1");
tabSpec1.setIndicator("热门视频",getResources().getDrawable(R.drawable.ic_launcher));
tabSpec1.setContent(R.id.line1);
mTabHost.addTab(tabSpec1);

这里要说明下:为什么mTabHost.newTabSpec("tab1");为什么要加参数呢?

这是因为里面的参数表示标签页的唯一识别.

当然标签页中还没有内容,还要指定标签页的标题和内容,

tabSpec1.setIndicator();表示表明表项(表示了什么.代表了什么),这里传递图片和文字.

tabSpec1.setContent(R.id.line1);设置标签页的内容

效果显示如下:

 

简单吧。下一章介绍自定义的TabHost.

转载于:https://my.oschina.net/techstan/blog/131903

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值