Anroid下TabHost布局

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

1.概念

盛放Tab的容器就是TabHost。TabHost的实现有两种方式:

      第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。各个Tab中的内容在布局文件中定义就行了。

      第二种方式,不继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。

 2.案例

1)继承TabActivity

res/layout/main.xml

复制代码
<?xml version="1.0" encoding="utf-8"?>
 <!-- 定义TabHost组件 -->
 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
   <!-- 定义第一个标签页的内容 -->
   <LinearLayout android:id="@+id/tab01" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
     <!-- 定义两个TextView用于显示标签页中的内容 -->
     <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="孙悟空-2011/07/12"/> 
     <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="猪八戒-2011/07/10"/>
   </LinearLayout>
   <!-- 定义第二个标签页的内容 -->
   <LinearLayout android:id="@+id/tab02" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
     <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="萨僧-2011/07/11"/> 
     <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="唐僧-2011/07/10"/>
   </LinearLayout>
   <!-- 定义第三个标签页的内容 -->
   <LinearLayout android:id="@+id/tab03" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
     <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="孙悟空-2011/07/12"/> 
     <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="萨僧-2011/07/08"/>
   </LinearLayout>
 </TabHost>
复制代码

HelloTabHost.java

复制代码
 public class HelloTabHost extends TabActivity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
 
     //调用TabActivity的getTabHost()方法获取TabHost对象
     TabHost tabHost = getTabHost();
 
     //设置使用TabHost布局
     LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(),true);
 
     //添加第一个标签页
     tabHost.addTab(tabHost.newTabSpec("tab01").setIndicator("已接电话").setContent(R.id.tab01));
 
     //添加第二个标签页,并在其标签上添加一个图片
     tabHost.addTab(tabHost.newTabSpec("tab02").setIndicator("未接电话",getResources().getDrawable(R.drawable.icon)).setContent(R.id.tab02));
 
     //添加第三个标签页
     tabHost.addTab(tabHost.newTabSpec("tab03").setIndicator("已拨电话").setContent(R.id.tab03));
   }
 }
复制代码

运行效果:

2)不继承TabActivity

     继承普通Activity,<TabWidget>标签id必须为tabs、<FrameLayout>标签id必须为tabcontent.这个方式在通过findViewById获得TabHost之后,必须要调用setup方法。

main.xml代码

复制代码
<?xml version="1.0" encoding="utf-8"?>  
  <!-- TabHost必须包含一个 TabWidget和一个FrameLayout-->   
  <TabHost android:id="@+id/tabhost" android:layout_width="fill_parent" android:layout_height="wrap_content">  
        <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">  
            <!-- TabWidget的id属性必须为 @android:id/tabs-->              
            <TabWidget android:id="@android:id/tabs" android:orientation="horizontal" android:layout_width="fill_parent"  
              android:layout_height="wrap_content" />  
            <!-- FrameLayout的id属性必须为 @android:id/tabcontent-->  
             <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent">  
                <TextView android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="fill_parent"/>  
                <TextView android:id="@+id/view2" android:layout_width="fill_parent" android:layout_height="fill_parent"/>  
                <TextView android:id="@+id/view3" android:layout_width="fill_parent" android:layout_height="fill_parent"/>  
             </FrameLayout>  
         </LinearLayout>  
    </TabHost>  
</LinearLayout>  
复制代码

Java代码

复制代码
public class TabHostTest extends Activity {  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        // 获取TabHost对象  
        TabHost tabHost = (TabHost) findViewById(R.id.tabhost);  
        // 如果没有继承TabActivity时,通过该种方法加载启动tabHost  
        tabHost.setup();  
        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("第一个标签",  
                getResources().getDrawable(R.drawable.icon)).setContent(  
                R.id.view1));  
  
        tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("第三个标签")  
                .setContent(R.id.view3));  
  
        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("第二个标签")  
                .setContent(R.id.view2));  
    }  
} 
复制代码

效果图

 

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 立即下载

相关推荐

Xilinx IP库在Modelsim/Questasim中的高效仿真实践

本文详细介绍了在Modelsim/Questasim中高效仿真Xilinx FPGA设计的核心方法。针对仿真时常见的IP核缺失错误,重点解析了两种主流解决方案:使用Vivado的compile_simlib命令自动编译完整仿真库,以及利用export_simulation命令为特定工程生成仿真脚本。文章还提供了手动配置库的深入理解、实战排错步骤及高级避坑指南,帮助用户构建稳定、高效的独立仿真环境。

sony5的博客 1229

Android之TabHost布局

Android之TabHost布局 1.概念 盛放Tab的容器就是TabHost。TabHost的实现有两种方式: 第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。各个Tab中的内容在布局文件中定义就行了。 第二种方式,不继承TabActivity,在布局文件中定义TabHost...

aaxd0402的博客 335

【微信小程序开发与设计】垃圾智能分类小程序

垃圾分类是将来生活可持续发展的必需项。但是很多人由于缺乏垃圾分类知识,或是因为垃圾分类困难,费时费力,所以没有好好贯彻垃圾分类政策,此时设计一款方便于群众进行智能化垃圾识别分类的微信小程序就显得尤为必要。

Markelle_Fultz的博客 8245

Android中选项卡TabHost的基本使用

注意:TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是 @android:id/tabcontent。2、主Activity类继承TabActivity;3、用getTabHost()方法获取TabHost。接下来使用第一种的实现方法来去实现TabHost。1、直接在布局文件中定义TabHost。然后使用第二种方法创建TabHost。1、各选项内容在布局文件中定义。

2401_84520215的博客 293

Autosar诊断实战系列07-Dcm之0x19 06扩展数据配置及工程问题讨论

19 06扩展数据如何配置?如果某DTC没有出现过故障扩展数据该如何响应?

initiallizer的博客 1704

37、基于视觉的轻量级面部呼吸和心率测量技术

本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。

r7s8t的博客 307

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

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

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

如何在非序列模式下使用类似图像模功能

如何在非序列模式下使用类似图像模功能

weixin_72050316的博客 552

[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

《MPDIoU:边界框回归的高效革新与YOLOv8集成实战指南》

摘要: MPDIoU(多优先级距离IoU)通过引入中心距离、形状差异和尺度变化的三步优化策略,解决了传统IoU在目标检测中的尺度敏感、收敛低效和场景局限问题。相较于GIoU、DIoU等主流方法,MPDIoU在精度、速度和鲁棒性上实现全面提升,尤其在复杂场景和小目标检测中表现突出。通过代码集成和训练优化,MPDIoU在YOLOv8中显著提升COCO数据集AP指标,并在智能安防(密集行人检测)和工业质检(微小缺陷定位)等垂直领域验证了其应用价值。未来研究方向包括动态权重调整和多模态融合,进一步拓展边界框回归的精

m0_64661770的博客 158

新能源汽车电机交流电流测量系统精度全链路分析

通过全链路误差建模与瓶颈分析,结合硬件选型优化与软件算法补偿,可将系统精度从4.2%提升至≤1% FS。本文所述方法论已应用于某800V电驱平台开发,实测电流控制精度达±0.8%,为高性能电机控制奠定基础。为例,深入剖析从互感器采集到CAN报文解析的全链路信号处理流程,揭示各环节误差来源及对最终精度的影响,为研发测试提供理论支撑。:±0.1%(电阻温漂与运放开环增益限制):运放增益带宽积(GBW)不足导致高频衰减。:±0.02%/℃(铁氧体材料温敏特性):±0.5%读数(磁芯饱和效应)

优快云-新能源汽车研发测试专业博主 1492

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

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

2401_84149882的博客 1004

从“点云”到“图像”:华为896线激光雷达的技术飞跃与行业影响浅析

华为发布全球首款896线双光路激光雷达,实现车载感知从"3D点云"到"3D成像"的跨越。该产品采用创新双光路架构,集成广角和长焦单元,单帧点云量达128线产品的7倍,可在55米外识别小狗摇尾巴等细节。实测数据显示,其能识别120米外14厘米低矮障碍物,夜间低反射率目标识别距离提升190%。尽管速腾聚创随后发布更高线数产品,但华为强调实用性和量产可行性,成本仅增加1-2万元。这一突破标志着激光雷达进入大规模应用阶段,将加速高阶智驾功能普及,强化华为在智能汽车领域的技术底

致力于lidar应用开发 211

Android TabHost

Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之间的快速切换,每个分页可以显示不同的内容 Tab标签页的使用       1.首先要设计所有的分页的界面布局       2.在分页设计完成后,使用代码建立Tab标签页,并给每个分页添加标识和标题       3.最后确定每个分页所显示的界面布局       每个分页建立一个XML文件,用以编辑和保存分页的界面布局,使用的方法

水寒 2062

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Anroid-通用组件- 滚动视图组件(ScrollView)-选项卡组件(TabHost-TabWidge-FrameLayout)

Android提供了ScrollView滚动视图组件,用于为组件提供滚动效果,还提供了选项卡组件它由(TabHost-TabWidge-FrameLayout)三个组件组成, 滚动视图组件(ScrollView) 1.当内容比较多,不能一屏显示的时候,就用到了滚动条组件,用户可以通过滚动屏幕查看完整内容。 2.滚动视图组件继承自帧布局管理器, 3.因此在滚动条组件中可以添加任意组件,但是一个滚动视图里只能放一个组件。 4.如果有放入多个组件组件的需求,可以在滚动视图里添加一个布局管理器,然后将组件放在布局管

csdnbian的博客 419

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android Tabhost部件(三)--使用自定义view和fragement实现类似TabHost样式

 简单的介绍了其使用的方法,但是在实现的时候发现TabHost已经被官方遗弃了。虽然我觉得TabHost还是多好用的(可能因为我这种菜鸟不清楚吧)不知道为什么官方会遗弃,但应该还是有原因的吧。 首先,我们来简单的了解一下Fragment。Fragment是Android在3.0中引入的概念用来在一个Activity中描述一些行为或一部分用户界面,支持不同分辨率屏幕的动态和灵活的UI设计。F

09的专栏 1063

假人有限元模型

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

FragmentTabHost实现Fragment的tab效果

public class MainActivity extends FragmentActivity{ //定义FragmentTabHost对象 private FragmentTabHost mTabHost; //定义一个布局 private LayoutInflater layoutInflater; //定义数组来存放Fragment界面

pengkv的专栏 1723

Android选项卡TabHost功能和用法

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

钻石 4万+

Android选项卡TabHost

选项卡主要由TabHost(标签,主人),(微件)和3个组件组成,用于实现一个多标签页的用户界面。

m0_57150356的博客 471

安卓 TabHost

MainActivity.java import android.app.Activity; import android.app.ActivityGroup; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TabHost; public class MainActivity ...

有勇气的牛排博客 638

android studio底部导航栏 使用Tabhost布局方法实现底部导航栏,此方法无需引入其他东西

使用activity.xml的布局格式,虽然使用了FrameLayout。但,是必要的。因为切换还是以页面形式展现,虽然麻烦,但写完不会像frameLayout那样在之后的编码上对初学者不友好

weixin_65168955的博客 3059

在 Android 里,配置多个 URLScheme

一、URL Scheme 的作用 Scheme 用于从浏览器或其他应用中启动本应用。也就是说要从其他应用中跳转本应用的界面或者网页跳转本应用打开特定的界面。 二、 在 Android 应用中配置 Scheme 1、 只有一个 Scheme 的情况下 在 AndroidManifest.xml 中定义 intent-filter,这里我给出部分代码 <activity android:name=".MainActivity" android:label="@string/app_...

lizhong 2915

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

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。欢迎大家一起交流讨论啊~《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。[外链图片转存中…(img-PzI6M2Yp-1713284506082)]欢迎大家一起交流讨论啊~

2401_84149855的博客 1212

AndroidManifest.xml文件详解(data)

语法(SYNTAX): &lt;dataandroid:host="string" android:mimeType="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:port="string" android:

编程资料大全 499

Android UI设计-Tabhost标签页

何谓标签 印象最深刻的应该是这个         现在 我们将通过一系列的扩展来研究之 写道 1. 自定义TabActivity 使得标签处于屏幕下方 2. 各个标签所用布局 既可在 *.xml 中定义 也可在 *.java 中定义 3. 更改标签布局     1. 标签页 在 屏幕下方 写道 一个典型的标签Activity  是由2 部分构成的 且其id都有规定

joeyaung_1983的专栏 820

android 标签样式布局,安卓 Tab 标签-利用 TabHost、TabWidget、FrameLayout 啰里八嗦实现 Tab 标签控件...

安卓 Tab 标签-利用 TabHost、TabWidget、FrameLayout 啰里八嗦实现 Tab 标签控件首先 XML 布局代码TabHost 是整个 Tab 的外围,TabWidget 是标签头、FrameLayout 是标签内容框。android:id="@+id/tabHost"android:layout_width="match_parent"android:layout_he...

weixin_26851157的博客 334
上一篇: Adroid 下菜单的使用
下一篇: L​i​n​u​x​中​e​r​r​o​r​ ​w​h​i​l​e​ ​l​o​a​d​i​n​g​ ​s​h​a​r​e​d​ ​l​i​b​r​a​r​i​e​s​错​误​解​决​办​法
hi come
博客等级 码龄14年 33粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值