当前位置: 首页 > news >正文

Android选项卡TabHost

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

1. TabHost在XML文件中添加:

XML布局文件中添加选项卡时必须使用系统id来为各组件指定id属性。

<TabHostandroid:id="@android:id/tabhost"... ... ><LinearLayoutandroid:orientation="vertical" ... ... ><TabWidgetandroid:id="@android:id/tabs"... ... /><FrameLayoutandroid:id="@android:id/tabcontent"... ... /></LinearLayout>
</TabHost>

2. 准备选项卡内XML布局资源:

//文件 - res \ layout \ tab1.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout ... ...android:background="@color/purple_700"android:id="@+id/relativeLayout_tab1"></RelativeLayout>//文件 - res \ layout \ tab2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout ... ...android:background="@color/purple_200"android:id="@+id/relativeLayout_tab2"></RelativeLayout>

3. TabHost在Java文件中设置:

//获取TabHost对象
TabHost tabHost=findViewById(android.R.id.tabhost);
//初始化TabHost
tabHost.setup();
//添加标签页
LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);
layoutInflater.inflate( R.layout.tab1 , tabHost.getTabContentView() );
layoutInflater.inflate( R.layout.tab2 , tabHost.getTabContentView() );
tabHost.addTab( tabHost.newTabSpec("tab01").setIndicator("str1")  //指示信号,即在标签处显示的文本.setContent( R.id.relativeLayout_tab1 ) );
tabHost.addTab( tabHost.newTabSpec("tab02").setIndicator("str2")  //指示信号,即在标签处显示的文本.setContent( R.id.relativeLayout_tab2 ) );

  

相关文章:

Android选项卡TabHost

选项卡主要由TabHost(标签&#xff0c;主人)&#xff0c;TabWidget(微件)和FrameLayout3个组件组成&#xff0c;用于实现一个多标签页的用户界面。 1. TabHost在XML文件中添加&#xff1a; XML布局文件中添加选项卡时必须使用系统id来为各组件指定id属性。 <TabHostandro…...

qml添加滚动条

import QtQuick.Controls 2.15ScrollBar.vertical: ScrollBar {visible: flick1.contentHeight > flick1.heightanchors.right: parent.rightanchors.rightMargin: 40width: 10active: truecontentItem: Rectangle {radius: 6opacity: 0.5color: "#7882A0"} }...

elementui-plus el-tree组件数据不显示问题解决

当前情况: 显示: 注意看右侧的树是没有文字的,数据已经渲染,个数是对的,但就是没有文字, 解决: 对比以后发现是template中的#default{data}没有写大括号导致的 所以写上大括号后: 正常显示...

EMR 磁盘挂载解读与磁盘扩容操作

云上的计算实例挂载的存储盘通常可以在线实现磁盘扩容。本文以 AWS EMR 节点的磁盘扩容为例,记录一下具体的操作步骤。在详细介绍前,先将重要的总结发在前面,便于以后查阅: EMR 磁盘分配规则是: 第一磁盘(/dev/nvme0n1),必备,大小由控制台的"EBS root volume&qu…...

小程序day04

目标 自定义组件 创建组件 引用组件 局部引用 全局引用 组件的函数定义到metods节点中&#xff0c;梦回vue2. 样式 数据&#xff0c;方法&#xff0c;属性 下划线开头的称为自定义方法&#xff0c;非下划线开头的都是事件处理函数。 神特么&#xff0c;this.datathis.pro…...

哪些人更容易受到网络攻击?

当下&#xff0c;企业的安全已从传统的外部网络安全威胁防御&#xff0c;逐渐延伸到内部威胁防御。很多时候IT基础设施被攻陷不是外部造成&#xff0c;而是内部使然&#xff0c;这些内部威胁要复杂得多且难以管理。那么&#xff0c;哪些员工最脆弱、最有可能给企业组织带来网络…...

sql语句-实体属性有集合怎么批量查询

1、背景 前端返回一个实体类&#xff0c;实体类里还有集合。要对集合外的属性查询&#xff0c;还要对集合批量查询&#xff0c;并且属性可能为空。返回给前端的结果是个实体类&#xff0c;实体类里有集合。 2、前端实体类 public class AppletSyncDiseaseInfoBO {// 病害信息…...

临界资源,临界区,通信的干扰问题(互斥),信号量(本质,上下文切换问题,原子性,自身的安全性,操作)

目录 引入 概念 临界资源 临界区 干扰存在原因 互斥 信号量 引入 举例 概念 介绍 表示可用资源数 表示等待进程数 申请信号量 信号量的本质 全局变量? 共享内存? 不安全问题 -- 上下文切换 原子性 信号量自身的安全性 原子操作的意义 操作 引入 通信…...

工具介绍——第三方软件远程连接(工具:Rustdesk)

文章目录 前言一、使用工具二、开始演示1、拿下目标主机权限后上传文件2、运行目标主机上的rustdesk-1.1.9.exe文件3、目标主机上whoami查看现在的用户4、查找目标主机上连接的文件&#xff0c;并添加连接密码5、目标主机重启rustdesk的应用程序6、本地连接主机 前言 这里主要…...

【脑机接口 算法】EEGNet: 通用神经网络应用于脑电信号

EEGNet: 神经网络应用于脑电信号 中文题目论文下载&#xff1a;算法程序下载&#xff1a;摘要1 项目介绍2 EEGNet网络原理2.1EEGNet原理架构2.2FBCCA 算法2.3自适应FBCCA算法 3EEGNet网络实现4结果 中文题目 论文下载&#xff1a; DOI: 算法程序下载&#xff1a; 地址 摘要…...

【会话技术】Cookie和Session的工作流程和区别

Cookie技术 web程序是通过HTTP协议传输的&#xff0c;而HTTP是无状态的&#xff0c;即后续如果还要使用前面已经传输的数据&#xff0c;就还需要重传。这样如果数据量很大的情况下&#xff0c;效率就会大打折扣。Cookie的出现就是为了解决这个问题。 Cookie的工作流程&#x…...

Xmake v2.8.5 发布,支持链接排序和单元测试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量&#xff0c;没有任何依赖&#xff0c;因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建&#xff0c;相比 makefile/CMakeLists.txt&#xff0c;配置语法更加简洁直观&#xff0c;对新手非常友好&#x…...

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远程控制软件总结

红队专题 招募六边形战士队员[30]远控班第一期课程与远控总结 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 [30]远控班第一期课程与远控总结 一.Bug修复(1)生成路径(2)显示系统版本号二.内存泄露(1)如何检查内存泄露 #define CRTDBG_…...

MyBatis与SQL实用技巧 实用语法

数据库SQL技巧 数值转字符 <select id"getMaterialsList" resultType"java.util.Map">selectmaterial_id materialId,material_name materialName,unit, specification, CONVERT(unit_price,CHAR) unitPricefrom trace_agriculture_materialwhere …...

更好的理解c++中的虚函数和静态多态以及动态多态

1.虚函数&#xff08;Virtual Function&#xff09; 在c 中&#xff0c; 虚函数是定义在基类中的函数&#xff0c;但是它可以在派生类中进行重写&#xff08;Override) 。 通过在基类中通过virtual 关键字声明函数 &#xff0c; 你创建了一个可以在任何派生类中特别实现的接口…...

MybatisPlus之新增操作并返回主键ID

在应用mybatisplus持久层框架的项目中&#xff0c;经常遇到执行新增操作后需要获取主键ID的场景&#xff0c;下面将分析及测试过程记录分享出来。 1、MybatisPlus新增方法 持久层新增方法源码如下&#xff1a; public interface BaseMapper<T> extends Mapper<T> …...

工程(十四)——ubuntu20.04 PL-VINS

博主创建了一个科研互助群Q&#xff1a;772356582&#xff0c;欢迎大家加入讨论。这是一个科研互助群&#xff0c;主要围绕机器人&#xff0c;无人驾驶&#xff0c;无人机方面的感知定位&#xff0c;决策规划&#xff0c;以及论文发表经验&#xff0c;以方便大家很好很快的科研…...

C复习-结构struct+bit field+union

参考&#xff1a; 里科《C和指针》 结构的声明 struct {int a;char b; } x; struct {int a;char b; } y[20], *z;// 会报错&#xff0c;因为z和x虽然都没有名字&#xff0c;但是并不是一个东西 z &x;struct SIMPLE {int a;char b; }; // 这样就对了&#xff0c;因为名字匹…...

1 快速了解Paimon数据湖核心原理及架构

1.1 什么是Apache Paimon Apache Paimon的前身属于Flink的子项目&#xff1a;Flink Table Store。 目前业内主流的数据湖存储项目都是面向批处理场景设计的&#xff0c;在数据更新处理时效上无法满足流式数据湖的需求&#xff0c;因此Flink社区在2022年的时候内部孵化了 …...

chrome v3开发插件实现所有网站允许跨域

场景&#xff1a; chrome 插件 升级到v3后&#xff0c;原来修改请求响应都变成异步&#xff0c;即无法同步拦截来修改请求响应。 在v3中也不支持修改请求响应内容。 问题&#xff1a;如何在chrome v3中允许其他网站跨域呢。 方式一&#xff1a;禁用chrome跨域&#xff0c;禁…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...