TabHost的使用

So over the past few weeks I’ve jumped into Google’s Android platform. It’s a blast and very well designed, but there are still some rough edges. One of those rough spots is getting a tab or paging control to work. The API documentation talks about a TabHost widget, but it has been marked as deprecated. (Already!? The API was just formed a few months ago, lol.) It speaks of a phantom “views/Tabs2.java” example which never shipped. There is also talk about a PageTurner widget, but no examples exist for that either.

Because I needed a tab-like control badly, I brute forced my way through getting a TabHost working. Hopefully this will save other developers some time. Remember that the TabHost widget is marked as deprecated in this version of the API. However, someone mentioned that TabHost might be making a comeback. In either case, here is a quick example of TabHost in action:

First let’s create an XML layout for our example, just a simple LinearLayout with a TabHost widget inside. It’s important to notice that the TabHost must contain both a TabWidget and a FrameLayout with specific id’s in order to work.

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>

<TabHost
id=”@+id/tabs”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>

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

<FrameLayout
id=”@android:id/tabcontent”
android:layout_width=”fill_parent”
android:layout_height=”200px”
android:paddingTop=”30px”
>

<LinearLayout
id=”@+id/content1″
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”#ff99ccff”
>

<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”tab item uno :)”
/>

</LinearLayout>

<LinearLayout
id=”@+id/content2″
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”#ffffcc99″
>

<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”tab item dos :/”
/>

<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”tabhost needs”
/>

<Button
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”to be upgraded ;)”
/>

</LinearLayout>

</FrameLayout>

</TabHost>

</LinearLayout>

Inside the FrameLayout we can put our tab contents, which in this case are two LinearLayouts with different contents. These, of course, could be pulled by id and filled with dynamic content as needed. If I remember correctly, I think it was important that some sort of tab-content container needed to actually exist as a sub-widget under the FrameLayout in order for the tabs to work.

Next, let’s jump over to the Java code and build up the tab example.

setContentView(R.layout.tabs);

TabHost tabs = (TabHost)this.findViewById(R.id.tabs);
tabs.setup();

tabs.addTab(”one”, R.id.content1, “labelone”);
tabs.addTab(”two”, R.id.content2, “labeltwo”);

Nothing too fancy, just pull the TabHost, initialize it, and let it know about the tabs we have. Now let’s give the example a spin on the emulator:

This is the first real look we’ve had at the TabHost widget, and it looks okay. Mouse clicking doesn’t switch tabs, so you need to use the keypad’s left/right arrow keys to navigate. The up/down keys work as expected on a tab with buttons, so not much to complain about. :)

FragmentTabHost示例 FragmentTabHost示例化代码,通过布局文件可以把Tab放在最上面或最下面 立即下载

相关推荐

【python快速编程入门(第二版)黑马程序员课后编程题】

python快速编程入门(第二版)黑马程序员课后编程题

weixin_46167259的博客 1万+

使用选项卡TabWidget与TabHost实现底部或者顶部四个分类按钮 点击切换对应的fragment

首先作为一名菜鸟,尤其是记忆不好菜鸟,主动手写笔记记忆一些东西还是很有必要的,至少对于我而言。 言归正传,首先当大家看到这个需求,会想到布局中的选项卡控件,TabHost与TabWidget,其中这两个的区别,我的理解就是TabHost是装有选项卡+选项卡内容(FrameLayout)的容器,而TabWidget则就是底部或者顶部的那四个按钮。 再说布局中的注意事项的时候首先我们先看下布局,我

zhangcainiao007的博客 2049

2023西工大NOJ (C语言版) 完结!!!

代码均可AC,不含解析。

annesede的博客 8万+

tabhost学习精要

今天学习了 tabhost类   1.系统自动添加了 相对布局的代码  我们在视图布局中 在composite中直接拖动tabhost到界面上 2.把相对布局的命名空间复制粘贴到tabhost,把tabhost中的关于相对布局的代码删掉,再删除顶部的相对布局的代码和底部 的标签,让tabhost直接做布局,(也可以在空布局中添加tabhost 但是会自动添加的代码很少)。此时

企鹅菜鸟的成长过程 968

基于WEB的报价管理系统的设计与实现

该系统采用B/S模式,后台运用SpringMVC和MyBatis搭建,利用MySQL数据库,来组织存储和管理数据,使用tomcat服务器向外提供服务。使用该系统对外有利于提高企业的综合竞争力,对内有利于提高成本管理和控制的水平,简化了报价流程、提高了工作效率、精简了报价机构,降低了成本。研究和掌握必要的信息采集和数据查询技术,是各个企业,事业单位信息化的一个重要标志。当前大多数企业采取的报价方式仍然是用EXCEL表格和人工的方式,这不仅不利于大量数据的总结,更不利于对销售利润的控制。

m0_60918862的博客 1000

《QGIS快速入门与应用基础》108:CGCS2000对应的投影坐标系

本文详细解析了CGCS2000地理坐标系对应的各类投影坐标系,包括高斯-克吕格3°带/6°带、UTM、地方独立投影和Web墨卡托投影。文章系统阐述了各投影类型的分带规则、参数设置、精度特性及适用场景,并提供了EPSG编码对照表和QGIS操作指南。通过"基准+投影"的绑定机制,这些投影坐标系实现了平面坐标与经纬度的精准转换,满足从大比例尺工程测量到Web地图服务等不同应用需求。内容涵盖投影原理、坐标格式、变形控制等关键技术要点,为GIS开发者和测绘人员提供了实用的参考信息。

LuckyHanMo的博客 545

流行的界面切换FragmentTabHost详解

1. 前戏   当前80%的移动客户端都是此种布局,包括主流的QQ,微信,通过下方的控制tab来操作进行切换当前的界面,当然方法有很多,但是能有封装,能有控件我认为当然用可行的,废话不多说了,看图。 2.  干货      xml布局如下,一定要注意几点: 1.这个布局为了要用weight,所以一定要使用LinearLayout布局 2.为了优化fragment之间切换的流畅和灵活性

guozhaohui628 3393

基于 FPGA 的 CNN 卷积神经网络之池化层 Verilog 实现

池化层是卷积神经网络(CNN)中的关键组件,用于降低特征图的维度,减少计算量和防止过拟合。常见的池化操作包括最大池化和平均池化。FPGA 提供了高效的并行处理能力,可以加速这些操作。池化层在 CNN 中扮演重要角色,通过降低数据维度提升计算效率。在 FPGA 上实现池化层,可以充分利用硬件资源实现高效的并行计算,有助于提高实时应用中的推理速度。

走向CTO的路上... 1256

TabHost

TabHost选项卡 TabHost标签,TabWidget标签,FragmentLayout标签,这三个标签的id都是固定的系统定义的。 TabHost由标签(tabs)和标签体(tabcontent)组成。   是一个容器,可以包含并且运行多个嵌入的activity。 已过时,推荐使用Fragment替代。   &lt;RelativeLayout xmlns:android...

学习笔记 113

[PCIE5.0] 4.2.3.2 Encoding of Presets

• 发射器预设:发射器预设值用4位二进制编码,表示不同的预设设置(P0 到 P10),这些设置定义了信号的传输特性。• 接收器预设提示:接收器预设提示是通过3位二进制编码告诉接收器建议的增益值,用于调整接收器的灵敏度(适用于8.0 GT/s数据速率)。

系统固件工程师 575

48-OpenCVSharp —-Cv2.MatchTemplate() 函数功能(模板匹配)详解

是 OpenCV 中一个常见且简单的模板匹配算法,适用于目标检测和图像识别中的静态场景。它的优点是易于理解和实现,但在面对旋转、尺度变化、复杂背景或光照变化等挑战时,效果可能大打折扣。在这些情况下,结合多尺度图像、特征匹配算法(如 SIFT、SURF、ORB 等)以及深度学习模型可以显著提高匹配的鲁棒性和精度。模板匹配仍然是一个非常基础但强大的工具,适用于一些简单的图像匹配任务。对于更加复杂和动态的图像识别任务,我们通常会使用其他更加复杂的算法或者深度学习模型来处理。

weixin_45590420的博客 4523

TabActivity、TabHost、NavController

1.TabActivity 继承自Activity,其内部定义好了TabHost,可以通过getTabHost()获取TabHost。     TabHost 包含了两种子元素:一些可以自由选择的Tab,及 与这些tab对应的内容tabContent,在layout的下它们分别对应 TabWidget (用于展示标签页, id固定为tabs )和 FrameLayout(用于展示隶属于各个标签的

1279

【网络安全 | 渗透工具】Hydra安装使用详细教程

Hydra,也称九头蛇,是一款非常强大的暴力破解工具(密码能否被破解关键在于字典是否足够强大),支持多种服务协议的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装。该工具支持以下协议的爆破:Hydra在kali中自带,这里介绍windows下的安装方法。zip下载地址:https://gitcode.com/maaaaz/thc-hydra-windows/tree/master下载完成后解压: 再将thc-hydra-windows-mast

等风来 9203

TabHost的使用及原理

TabHost的使用 一、在了解TabHost之前,有以下知识是需要了解的: 1、TabHost的xml文件中,TabHost、TabWidget和显示TabHost的部分(通常用FrameLayout),这3部分的id是不可修改的,必须使用Android提供的id。 2、TabHost在自定义前,需要初始化,也就是调用tab.setup(); 3、使用TabHost在几个activity

sirenyizhi的博客 8598

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ViewPager和Tabhost结合,可滑动的tabhost

可滑动的Tabhost,借助了surporrtV13,V4也差不多,一样的。 二者结合,当tabhost的tabbar点击的时候,viewPager滑动,滑动viewPager的时候,tabbar切换。tabbar的样式进行了重新布局,当然,你也可以自己定义自己的,详情看代码吧(下面有源码下载的地址)。 首先你要先在项目下建个libs把surporrtV13的jar包放进去。 效果图:

钱进的专栏 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android中TabHost嵌套TabHost

在嵌套TabHost时,先后遇到了以下情况: 问题1:内部TabHos无显示,只显示了其中的一个Activity; 解决:按下文比对主子TabHos的布局文件和java文件并修改; 问题2:如上所做后,遇到下文所提的问题一; 解决:按其方案可解决; 问题3:如上所做后,发现点击主/子TabHost中ListView的item均报异常,如下文所提的问题二; 解决:按其方案可解决。 下文

berber78的专栏 5561

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TabHost使用总结

TabHost是用来实现选项卡效果的一种控件,用起来并不复杂。

高淳小弟的博客 499

TabHost使用实例

621

TabHost的使用方法

介绍  有时,我们想在一个window中显示多个视图,这时就需要用到Tab容器。在Android里它叫TabHost。 使用TabHost有两种方式: 在相同的activity中使用TabHost导航多个视图使用TabHost导航多个Activity(通过intents) Tab应用的结构 TabHost的Activity的结构如下: 先看个示例:

u014552288的专栏 682

TabHost的基本使用

TabHost基本使用 一、布局 注意: TabHost的id必须是tabhost FrameLayout的id必须是tabcontent TabWidget的id必须是tabs 将TabWidget放置在FrameLayout之后 TabSpec --> tabhost 二、Activity的装配: public class MainActivity extends TabActivity...

汤姆lazy的优快云博客 693

Tabhost的简单使用

tabhost的简单使用 布局 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@android:id/tabhost" android:layout_width

飞鸟 945

android tabhost 多个activity,Android:TabHost中Activity的生命周期问题

用过TabHost制作多个activity的分页效果的朋友应该知道,tabhost中镶嵌的activity的onCreate和onDestroy是和tabhost关联的,在创建了tabhost之后,第一次访问某个activity会执行这个activity的oncreate事件,以后切回来时只会执行onResume事件。而一般情况下tabhost内的activtiy的onDestroy事件会在调用t...

weixin_36314117的博客 365

android tabhost 底部有一条白条,Android TabHost解决下面白线

我之前做分页都是用GridView和ActivityGroup实现的.因为觉得TabHost不好用,还有就是自己水平差的原因吧.如果帮的话,重写view任何问题都可以解决,呵呵,下面请看实现过程,其实很简单.针对TabHost的运用,我就不多讲解了,网上例子好多,或者你也可以下载我的Demo查看,不过先声明,写的不好.代码片段:publicclassMyActivityextendsTabActi...

weixin_34331737的博客 351
上一篇: Android中ProgressDialog的使用
下一篇: Android的Message Queue
sky_code
博客等级 码龄20年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值