Android零基础入门第63节:过时但仍值得学习的选项卡TabHost

本文介绍了过时的Android组件TabHost,虽然已废弃,但仍具有学习价值。内容包括TabHost概述、通过继承TabActivity和Activity实现TabHost的方法,以及其在实际开发中的替代方案。通过示例代码展示了TabHost的使用,强调了其在界面设计中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    由于前几天参加一个学习培训活动,几乎每天都要从早晨7点到晚上一两点,没有什么时间来分享,实在抱歉中间断更了几天。从今天开始恢复分享,更多精彩敬请期待。

   今天来了解一个过时的组件,了解的目的不是学会用起来开发,而是了解这种界面的设计和其特点,后期可以用其他方式来替代。

一、TabHost概述

    TabHost是一种非常实用的组件,TabHost可以很方便地在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域。通过这种方式,就可以在一个容器里放置更多组件。

    TabHost是整个Tab的容器,包含TabWidget和FrameLayout两个部分,TabWidget是每个Tab的标签,FrameLayout是Tab内容。与TabHost结合使用的有如下2个组件。

  • TabWidget:代表选项卡的标题条。

  • TabSpec:代表选项卡的一个Tab页面。

    TabHost仅仅是一个简单的容器,它提供了如下两个方法来创建、添加标签页。

  • newTabSpec(String tag):创建选项卡。

  • addTab(TabHost.TabSpec tabSpec):添加选项卡。

    实现TabHost有两种方式:

  • 直接让一个Activity程序继承TabActivity类。

  • 定义XML布局文件利用findViewById()方法取得TagHost组件,通过setup()方法实例化并进行配置。

二、继承TabActivity实现

    通过继承TabActivity类,使用TabHost的一般步骤如下。

  1. 在界面布局文件中定义TabHost组件,并为该组件定义该选项卡的内容。

  2. Activity 应该继承 TabActivity。

  3. 调用 TabActivity 的 getTabHost()方法获取 TabHost 对象。

  4. 通过TabHost对象的方法来创建、添加选项卡。

    除此之外,TabHost还提供了一些方法来获取当前选项卡。如果程序需要监控TabHost里当前标签页的改变,则可以为它设置 TabHost.OnTabChangeListener 监听器。

    接下来通过一个简单的示例程序来学习TabHost的使用。

    继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建tabhosttab_layout.xml文件,在其中填充如下代码片段:

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

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

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            <LinearLayout
                android:id="@+id/widget_layout_red"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值