Android学习之TabHost

掌握Android界面设计:TabHost多标签页布局实操 本文还有配套的精品资源,点击获取 简介:在Android开发中,界面设计对于用户体验至关重要。本主题以网易客户端为案例,详细讲解了如何使用TabHost组件实现多标签页界面设计,这是Android早期版本中常用的一种布局管理方式。文章首先介绍了TabHost的基本概念和如何在XML布局文件中配置它。随后深入探讨了TabWidget、FrameLayout、TabSpec等关... 阅读详情

 菜鸟学习android之TabHost.查询资料说android有这么个玩意--------选项卡。首先聊聊什么是选项卡,从网上搜索资料显示:一个顶部的按钮(可点击的)的切换卡部分,一个主内容区(上图显示“第二个窗体”字体的)的主显示区。举个简单点的例子吧,大家可以看看android手机上的通讯录,用的就是选项卡,点击顶部的选项卡一,二,三,在显示区会有不同的内容。强烈推荐看看手机上的通讯录。

TabHost是Tab的容器,包括两部分TabWidget和FrameLayout,TabWidget是tab的标签,FrameLayout是tab的内容。

再来说说,选项卡的使用:先来说说,xml布局文件的使用

1-----TabHost必须设置为@android:id/tabHost

2------TabWidget必须将android:id设置为@android:id/tabs

3-------FrameLayout需要将android:id设置为@android:id/tabcontent

接下来说说Activity的使用。如果想新建一个Activity实现tabhost,必须要继承TabActivity,此后,又是三步走战略。

1-------获得TabHost的对象,

             TabHost    tabHost = getTabHost();

2-------通过TabHost.TabSpec增加tab的一页,通过setContent()增加内容,通过setIndicator()增加页的标签。

            TabHost.TabSpec  spec  = tabHost.newTabSpec();

            spec.setContent(new Intent());

           spec.setIndicator("音乐",Resource res);

           tabHost.addTab(spec);

3--------通过setCurrentTab(index)指定显示的页,从0开始。

             tabHost.setCurrentTab(0);

以下是代码。
package cn.com.karl.music;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;

/**
 * 选项卡的使用 1 . 继承TabActivity 2、用getTabHost()方法获取TabHost; 3、各Tab内容在布局文件中定义。
 * 在手机屏幕中,Tab也是比较常用的,通常和List结合,例如我们手机的通信录。下面是Tag的结构。
 * 
 * TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout。TabWidget就是每个tab的标签,
 * FrameLayout则是tab内容。
 * 
 * 如果我们使用extends TabAcitivty,如同ListActivity,TabHost必须设置为@android:id/tabhost
 * TabWidget必须设置android:id为@android:id/tabs
 * FrameLayout需要设置android:id为@android:id/tabcontent
 * 
 * @author SYJ
 * 
 */
public class MainActivity extends TabActivity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);// 应用窗体显示状态操作该参数表示无标题
		this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉任务栏
		setContentView(R.layout.main);// 该语句必须在以上两句之后

		Resources res = getResources(); // 得到资源对象
		//步骤1:获得TabHost的对象,并进行初始化setup()
		TabHost tabHost = getTabHost(); // 选项卡类似于java中的卡片布局
		TabHost.TabSpec spec;
		Intent intent;
		intent = new Intent().setClass(this, ListActivity.class);// 启动音乐列表界面
		// 步骤2:通过TabHost.TabSpec增加tab的一页,通过setContent()增加内容,通过setIndicator增加页的标签
		spec = tabHost.newTabSpec("音乐")
				.setIndicator("音乐", res.getDrawable(R.drawable.item))
				.setContent(intent);
		tabHost.addTab(spec);

		intent = new Intent().setClass(this, ArtistsActivity.class);
		spec = tabHost.newTabSpec("艺术家")
				.setIndicator("艺术家", res.getDrawable(R.drawable.artist))
				.setContent(intent);
		tabHost.addTab(spec);

		intent = new Intent().setClass(this, AlbumsActivity.class);
		spec = tabHost.newTabSpec("专辑")
				.setIndicator("专辑", res.getDrawable(R.drawable.album))
				.setContent(intent);
		tabHost.addTab(spec);
		intent = new Intent().setClass(this, SongsActivity.class);
		spec = tabHost.newTabSpec("最近播放")
				.setIndicator("最近播放", res.getDrawable(R.drawable.album))
				.setContent(intent);
		tabHost.addTab(spec);

		// 步骤3:可通过setCurrentTab(index)指定显示的页,从0开始计算。
		tabHost.setCurrentTab(0);

	}
}


<?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="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="5dp" >

        <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="fill_parent"
            android:padding="5dp" />
    </LinearLayout>

</TabHost>



           


Android使用(TabLayout)与(FragmentTabHost)实现底部状态栏切换 Android使用(TabLayout+ViewPager+fragment)与(FragmentTabHost+ViewPager+Fragment)实现底部状态栏切换 立即下载

相关推荐

Android studio TabHost布局

Android studio开发,布局TabHost布局 demo,包括修改tab布局: tab栏字体颜色,tab栏大小等布局.

[Android] 选项卡组件TabHost

Tab选项卡实现多个分页之间的快速切换,每个分页可以显示不同的内容,在Android平台提供了TabHost组件实现Tab选项卡的功能,选项卡组件的主要功能是可以进行应用程序分类管理。 每个选项卡称为一个Tab,而包含这多个选项卡的容器称为TabHost。 1.TabHost的常用方法 public TabHost (Context context): 创建TabHost类对象 public void addTab(TabHost.TabSpec tabSpec):增加一个tab public Tab.

sam___1的博客 5904

Android Tabhost使用方法详解

Android 实现tab视图有2种方法,一种是在布局页面中定义<tabhost>标签,另一种就是继承tabactivity.但是我比较喜欢第二种方式,应为如果页面比较复杂的话你的XML文件会写得比较庞大,用第二种方式XML页面相对要简洁得多。 下面是我的XML源码: <FrameLayout xmlns:android=http://schemas.android.com/apk/res/android android:orientation=vertical android:layout_width=fill_parent android:layout_height

【Android从零单排系列二十八】《Android视图控件——TabHost》

小伙伴们,在上文中我们介绍了Android视图组件HorizontalScrollView,本文我们继续盘点,介绍一下视图控件的TableHost。通常用于描述Android应用程序中实现Tab布局的一种方法。Tab布局是一种常见的用户界面布局方式,允许用户在不同的选项卡之间切换内容。在Android中,可以使用多种方式来实现Tab布局,其中一种常见的方法就是使用TabHost和TabWidget组件。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1959

auboi5 + d435i 使用easy handeye进行标定时,遇到相关问题记录。

解决办法:在easy_handeye默认的 calibrate.launch 文件中move group 的默认值为 "manipulator",但针对每个人的机械臂,这个值需要更改。以aubo_i5为例,需要将其改为"manipulator_i5",或者自己编写launch文件时,传入参数move group的值,便能顺利解决问题!easy_handeye_calibration_server 进程出现崩溃。

weixin_61025092的博客 958

短信验证码接收平台完整搭建教程(超详细版,附完整源码)

在网站注册、用户登录、找回密码等功能中,验证码(特别是短信验证码)已成为验证用户身份的常见方式。本教程将详细介绍如何从零搭建一个短信验证码接收平台,用于保存、展示并管理来自短信网关或中间转发程序提交的验证码数据。✅ 教程适合有基本 Python/HTML 基础的开发者🚫 禁止用于任何违法用途,仅供学习参考✅ 支持通过 POST 接口接收短信验证码✅ 支持通过网页实时查看验证码历史记录✅ 验证码信息保存在 SQLite 数据库✅ 支持时间戳排序、查询最新验证码。

weixin_52548902的博客 4554

android选项卡TabHost功能和用法详解

总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

2401_84149882的博客 1004

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

Android选项卡TabHost功能和用法

1、选项卡TabHost介绍 TabHost可以方便地在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器大小相同的组件摆放区域 TabHost是一个简单的容器,提供如下两种方法来创建选项卡 newTabSpec(String tag):创建选项卡 addTab(TabHost.TabSpec tabSpec):添加选项卡 使用TabHost有三种方法 2、方法1,继承TabActivi...

钻石 4万+

NI USB-8506 LIN通讯配置全攻略:从驱动安装到NI MAX硬件检测

本文详细介绍了NI USB-8506设备的LIN通讯配置全流程,从驱动安装到NI MAX硬件检测。重点讲解了NI-CAN和NI-XNET驱动的安装避坑技巧,以及LIN通讯参数配置的实战经验,帮助用户快速掌握车载LIN总线通讯技术,提升工作效率。

weixin_29171087的博客 600

基于PINN的一个简单的求解偏微分方程实例

本人是做化工模拟的一名学生,最近在学习PINN(Physics-Informed Neural Networks,物理信息神经网络)对管道动力学进行建模研究,PINN由于其对机理与数据的良好兼顾性非常热门,本文是作者对PINN入门研究过程的一个练手小题目,main code也是作者代码是基于pytorch2.6.0写的,发上来供各位参考,欢迎研究管道动力学和PINN的小伙伴一起讨论~

weixin_64491760的博客 1741

Android:TabHost学习

前言 TabHost是用来在一个界面显示多个标签的组件,现在已经被Fragment代替,原因是可扩展性非常差,并且需要依赖ActivityGroup。现在对它进行学习是为了学习它构建界面的特点,更好的理解Android的UI。 TabHost组件在安卓4.0之后已经被废弃了,建议使用Fragment组件来代替它。由于其设计违反了Activity单一窗口原则,它可以同时加载多个Activity,然后再它们之间进行来回切换;另外有个很致命的问题就是当点击别的选项时,按下Back后退键,它会使整个应用程序都退出

weixin_44195634的博客 279

PCB过孔全介绍

过孔(via)是多层PCB的重要组成部分之一,钻孔的费用通常占PCB制板费用的30%到40%。简单的说来,PCB上的每一个孔都可以称之为过孔。从作用上看,过孔可以分成两类:一是用作各层间的电气连接;二是用作器件的固定或定位。如果从工艺制程上来说,这些过孔一般又分为三类,即盲孔(blind via)、埋孔(buried via)和通孔(through via)。盲孔位于印刷线路板的顶层和底层表面,具

小王的自我修行路 2357

Android学习-Fragment+TabHost安卓基本框架学习(Dota2篇)

14年10月写了个关于DOTA2想法的Demo,一部分是自己总结一些开发知识,一部分是对这样的创意进行实践。可惜事与愿违,未能坚持下来,又不想所做劳动丢之一弃,特此写此博客拿出来供新入行的同仁学习和借鉴,不足之处很多,废话不多说,上图   引导页-自定义的Viewpager 2个主要文件,自定义ViewPagerCompat和自定义切换动画RotateDownPageTransforme

Moes 779

国产大模型高考横评:数学推理与教育落地能力实测

大模型能力评估正从开放榜单转向封闭任务的确定性验证,高考作为强逻辑、低容错、高精度的标准化考试,成为检验模型真实推理能力的理想标尺。其核心在于考察知识覆盖、步骤完整性、单位敏感性与教学对齐度,而非单纯答案正确率。数学解答题尤其凸显模型在前提校验、条件枚举与过程可控性上的差异,反映出训练数据与教育语料深度耦合带来的工程化优势。该范式已延伸至语文语感建模、英语表达习惯适配及理综跨学科缝合等场景,为智能阅卷、精准答疑和教培系统集成提供可复现、可解释、可部署的技术依据。

weixin_30436581的博客 288

【第33话:车辆控制】自动驾驶车辆运动学模型推导及详解

自动驾驶车辆的运动学模型以自行车模型为核心,通过状态方程。

一碗白开水一 831

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

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

鑫鱻的博客 1782

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

安卓学习第31课——TabHost

虽然这个组件已经不推荐使用了,但是我还是学习了一下。他的xml有点复杂。 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@android:id/tab...

aozhe0658的博客 83

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android学习之-TabHost

TabHost的创建有两种方式: 1.使用android系统自带的。 2.自定义TabHost ------------------------------------------ 1.系统自带: main.xml http://schemas.android.com/apk/res/android"  android:id="@android:id/tabhost" andro

zhouguosen_always的专栏 814

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android tabhost学习

  1.写好配置文件 tabhost.xml &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android...

泪落尘烟 111

Android开发学习笔记——TabHost实例

现在几乎所有信息的App都会用到tabHost这个布局。tabHost是FrameLayout的一个子类。它实现的功能就是用一个tab标签来控制全局,使用户可以在不同的tab之间跳转。 笔者的一个体会就是每次要新写这个东西总是忘东忘西,所以这次一定要把tabHost实现过程中需要注意的事项总结出来。 一、tabHost布局 首先说说tabhost在xml文件中的布局。tabHost的xml布

smoooothly的专栏 3387

android:tabHost学习记录

一、TabHost可以很方便的在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域。TabHost仅仅是一个简单的容器,它提供了如下两个方法创建选项卡、添加选项卡: -->newTabSpec(String tag):创建选项卡 -->addTab(TabHost.TabSpec tabSpec):添加选项卡 使用TabHost的一般步骤: 1.在界面布局中定

张峥(Java) 2921

Android项目学习—Tabhost用法详解

控件TabHost的功能和web技术中的“选项卡”控件显示的效果一样,都是用最小的空间显示更多的数据。 一.Tabhost的相关介绍 1. TabHost常用组件 TabWidget : 该组件就是TabHost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡; TabSpec: 代表了选项卡界面, 添加一个TabSpec即可添加到TabHost中; 创建选项卡 :

阿乾的专栏 563

android tabhost组件学习

新浪微博布局学习——妙用TabHost

喧嚣求静 127

android空间学习之tabhost

学习完布局,接下来就是一些常用的控件了,这里介绍下tabhost 先上布局xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <TabHost 3 android:id="@android:id/tabhost" 4 xmlns:android="http://schemas.android.com/apk/res/...

weixin_33973600的博客 94

Android TabHost学习笔记

一、什么是TabHost。 Android 里面的TabHost就是选项卡,看下图(新浪微博界面): 至于选项卡有什么好处或者用途,我想代码哥们都知道吧,我就不多说了。 二、在Android里面如何实现TabHost 有两种方式可以实现。 1、继承TabActivity,然后用getTabHost()方法获取TabHost,最后在布局文件中定义各个Ta

way 2352
上一篇: 菜鸟一只我要飞
下一篇: Android学习之数据存储---SharedPreference
Warkey_Song
博客等级 码龄14年 3粉丝 15原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值