TabHost选项卡的 功能和用法

2024-04-26 12:18

本文主要是介绍TabHost选项卡的 功能和用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TabHost可以很方便地在窗口上放置多个标签页,每个标签页相当于获得了一个外部容器相同大小的组件摆放区域

TabHost的主要组件是:

TabWiget:代表一个选项卡标签条

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

TabHost的基本用法:
 1,在界面布局中定义TabHost组件,并未改组件定义该选项卡的内容
 2,继承TabActivity
 3,调用TabActivity的getTabHost()方法获取TabHost对象(获取)
 4,TabHost对象的addTab方法创建,添加选项卡(添加)

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><!--TabHost布局文件的结构: 1,TabHost容器必须包含TabWidget,FrameLayout2,FrameLayout则用于“层叠”组合多个选项页面,TabWidget定义选项卡的标题条,随FrameLayout中的层叠组件均分3,三个组件的ID有要求:TabHost的ID必须是android:id="@android:id/tabhost"TabWidget的ID必须是 android:id="@android:id/tabs"FrameLayout的ID必须是  android:id="@android:id/tabcontent"-->
<!-- 定义一个TabHost, ID必须是android提供的ID,android:id="@android:id/tabhost"-->
<TabHost  xmlns:android="http://schemas.android.com/apk/res/android"android:id="@android:id/tabhost"android:layout_width="fill_parent"android:layout_height="match_parent"android:layout_weight="1"><LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- 定义一个TabWiget选项卡标题条,ID必须是android提供的ID,android:id="@android:id/tabs" --><TabWidgetandroid:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content" /><!-- 定义一个帧布局FrameLayout,代表一个Tab页面,ID必须是android提供的ID, android:id="@android:id/tabcontent" --><FrameLayout android:id="@android:id/tabcontent"android:layout_width="match_parent"android:layout_height="match_parent"><!-- 当然可以放其他复杂的布局 --><LinearLayout android:id="@+id/tab01"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"> <TextView android:layout_width="match_parent"android:layout_height="match_parent" android:text="第一个Tab页"android:textSize="20dp"/></LinearLayout><LinearLayout android:id="@+id/tab02" android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"> <TextView android:layout_width="match_parent"android:layout_height="match_parent" android:text="第二个Tab页"android:textSize="20dp"/></LinearLayout><LinearLayout android:id="@+id/tab03"  android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"> <TextView android:layout_width="match_parent"android:layout_height="match_parent" android:text="第三个Tab页"android:textSize="20dp"/></LinearLayout>        </FrameLayout>     
</LinearLayout></TabHost>
TabHost布局文件的特点是:

TabHost布局文件的结构:
1,TabHost容器必须包含TabWidget,FrameLayout
2,FrameLayout则用于“层叠”组合多个选项页面,TabWidget定义选项卡的标题条,随FrameLayout中的层叠组件均分
3,三个组件的ID有要求:
TabHost的ID必须是android:id="@android:id/tabhost"
TabWidget的ID必须是 android:id="@android:id/tabs"
FrameLayout的ID必须是 android:id="@android:id/tabcontent"
MainActivity.java

package com.example.tabhosttest;import android.app.Activity;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;public class MainActivity extends TabActivity {//继承的是TabActivity/*TabHost的基本用法:* 1,在界面布局中定义TabHost组件,并未改组件定义该选项卡的内容* 2,继承TabActivity* 3,调用TabActivity的getTabHost()方法获取TabHost对象* 4,TabHost对象的addTab方法创建,添加选项卡* */@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取该activity里面的TabHost组件TabHost tabhost=getTabHost();//创建第一个tab页对象,TabSpec代表一个选项卡页面,要设置标题和内容,内容是布局文件中FrameLayout中TabSpec tab1=tabhost.newTabSpec("tab1");tab1.setIndicator("已接电话");//设置标题tab1.setContent(R.id.tab01);//设置内容//添加tab页tabhost.addTab(tab1);//创建第二个tab页对象TabSpec tab2=tabhost.newTabSpec("tab1");tab2.setIndicator("已拨电话");//设置标题tab2.setContent(R.id.tab02);//设置内容//添加tab页tabhost.addTab(tab2);//创建第三个tab页对象TabSpec tab3=tabhost.newTabSpec("tab1");tab3.setIndicator("未接电话");//设置标题tab3.setContent(R.id.tab03);//设置内容//添加tab页tabhost.addTab(tab3);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}




这篇关于TabHost选项卡的 功能和用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937564

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要