HarmonyOS组件之Tabs
Tabs
1.1概念
- Tabs 视图切换容器,通过相适应的页签进行视图页面的切换的容器组件
- 每一个页签对应一个内容视图
- Tabs拥有一种唯一的子集元素TabContent
1.2子组件
- 不支持自定义组件为子组件,仅可包含子组件TabContent,以及渲染控制类型 if/else 和 ForEach 并且 if/else 和ForEach下页仅支持TabContent,不支持自定义组件
1.2.1TabContent
- 有几个页签就写入几个TabContent
- 和build一样,只能有唯一一个子组件
1.3参数(接口)
Tabs(value?: {barPosition?: BarPosition, index?: number, controller?: TabsController})
Tabs({//默认的页面索引index: 0, // 页签的位置barPosition: BarPosition.End,// controller: 控制器,控制页签样式controller: this.TabController}) {//有几个页签就写几个TabContent//和build一样只能有一个唯一的子组件TabContent() {}}
| 参数名 | 参数类型 |
|---|---|
| barPosition | BarPosition |
| index | Number |
| controller | TabsController |
- barPosition:设置页签位置,(配合vertical属性一并使用)
- index:起始索引,设置当前视图页签的索引,默认是0
- controller:Tabs控制器
1.3.1 BarPosition枚举
| 名称 | 描述 |
|---|---|
| Start | vertical属性方法设置为true时,页签位于容器左侧; vertical属性方法设置为false时,页签为容器顶部 |
| End | vertical属性方法设置为true时,页签位于容器右侧; vertical属性方法设置为false时,页签为容器底部 |
注意:属性vertical(value:boolean):vertical默认值为false,表示内容页和导航栏垂直方向排列
1.3.2 Controller 页面控制器
-
自定义:
private TabController: TabsController = new TabsController()
1.4属性
vertical ( boolean )
- 默认值:false,设置页签位置
scrollable : boolean
- 设置是否可以通过滑动页面进行页面的切换
BarMode
- 设置TabBar布局模式
- fixed
- Scrollable:每一个TabBar均使用实际的布局宽度,超过总长度(横向的tabs的barWidth,纵向的tabs的barHeight)可滑动
2.1代码
@Entry
@Component
struct Test01 {@State message: string = 'Hello World';// 当前页签的索引@State CurrentIndex: number = 0private TabController: TabsController = new TabsController()private scroller: Scroller = new Scroller();/**滚动条的滚动范围是父级的高度* 滚动条的高度 =父级的高度/x x=内容区域的高度/父级的高度* Scroll* 可滚动的容器组件,* 当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动* 滚动的前提:主轴方向上的大小小于内容大小* 参数:* scroller:可滚动组件的控制器,用于与可滚动的组件进行绑定** 属性:* scrollable:设置滚动的方向,默认值ScrollDirection.Vertical* scrollBar:设置滚动条的状态,默认值BarState.Auto* on 默认开启 off:默认关闭 Auto:视情况出现* scrollBarWidth();滚动条的宽度* scrollBarColor():设置滚动条颜色** 建议:在最外层用Scroll,防止内容超出页面** */build() {Column() {Scroll(){Row() {this.tab('账号登录', 0)this.tab('短信登录', 1)this.tab('短信登录', 2)this.tab('短信登录', 3)}}.scrollable(ScrollDirection.Horizontal)// tab控制器Tabs({ controller: this.TabController }) {TabContent() {Column() {Scroll() {Text('第一页').backgroundColor(Color.Red).height(10000)}}.width('100%').height(500)}.backgroundColor(Color.Pink)TabContent() {Text('第二页')}}// .barWidth().barHeight(0)// 捕获视图的的行为 onChange只有一个参数,对于不同的组件具有不同的意义// 该index表示为当前视图的索引.onChange((index) => {this.CurrentIndex = index})}}@Buildertab(tabName: string, tabIndex: number) {Row() {Text(tabName).border({width: { bottom: this.CurrentIndex === tabIndex ? 2 : 0 },color: Color.Blue})}.onClick(() => {// 点击目标页签后,让当前的页签索引等于目标页签的索引this.CurrentIndex = tabIndexthis.TabController.changeIndex(this.CurrentIndex)}).width(120).height(30)}
}
相关文章:
HarmonyOS组件之Tabs
Tabs 1.1概念 Tabs 视图切换容器,通过相适应的页签进行视图页面的切换的容器组件每一个页签对应一个内容视图Tabs拥有一种唯一的子集元素TabContent 1.2子组件 不支持自定义组件为子组件,仅可包含子组件TabContent,以及渲染控制类型 if/e…...
Linux学习笔记之虚拟地址空间
1.示例引入 运行如下代码那么运行结果如下图。 #include<stdio.h> #include<unistd.h>int main() {pid_t id fork();if(id-1){printf("创建进程错误!\n");return 1;}int size0;if(id0){//子进程while(1){printf("我是子进程,…...
前端高级面试题
以下是一些前端高级面试可能涉及到的内容: 一、前端工程化 如何构建一个适合大型团队的前端代码规范和构建流程? 答案: 代码规范方面: 使用ESLint结合Prettier来统一JavaScript和CSS(包括预处理器如Sass或Less)的语法风格。例如,规定变量命名采用驼峰命名法,函数名要有…...
MySQL判空函数--IFNULL函数的使用
文章目录 IFNULL函数介绍IFNULL函数的语法举例相关扩展 IFNULL函数介绍 在MySQL中,IFNULL函数用于判断给定的表达式是否为NULL。如果表达式为NULL,则IFNULL函数返回指定的替代值;如果表达式不为NULL,则返回表达式本身的值。 IFN…...
HTTP的“对话”逻辑:请求与响应如何构建数据桥梁?
一、前言 作为现代互联网通信的基石,HTTP协议定义了客户端与服务器之间的“对话规则”。每一次网页加载、API调用或文件传输的背后,都离不开精心构造的HTTP请求与响应。请求中封装了用户的意图——从请求方法、资源路径到提交的数据;响应则承…...
二〇二四年终总结
写在前面 简单总结一下告诉自己,曾经活着 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结,但是一直拖着&…...
[论文阅读] SeeSR: Towards Semantics-Aware Real-World Image Super-Resolution
文章目录 一、前言二、主要贡献三、Introduction四、Methodology4.1 Motivation :4.2Framework Overview.** 一、前言 通信作者是香港理工大学 & OPPO研究所的张磊教授,也是图像超分ISR的一个大牛了。 论文如下 SeeSR: Towards Semantics-Aware Rea…...
全面了解HTTP(一)
全面了解HTTP(二)-CSDN博客 web及网络基础 使用HTTP协议访问web: HTTP: 网络基础TCP/IP 与HTTP关系密切的协议:IP,TCP,DNS 负责域名解析的DNS服务 各种协议与HTTP协议的关系 URI和URL 简单的HTTP协议 HTTP协议用于客户端和服…...
LM Studio笔记
一、什么是 LM Studio? LM Studio 是一款功能强大、易于使用的桌面应用程序,用于在本地机器上实验和评估大型语言模型(LLMs)。它允许用户轻松地比较不同的模型,并支持使用 NVIDIA/AMD GPU 加速计算。 功能集࿱…...
SoftwareCluster中如何配置VendorSignature
How to create VendorSignature...
Linux CentOS 7部署Vulhub靶场
漏洞复现环境: 1、Linux操作系统中通过Docker部署的Vulhub靶场: docker docker-compose 2、Nmap扫描工具 一、部署靶场 1、安装Docker 1、下载docker yum install docker 安装完成,如下图: 2、开启docker服务 [rootlocalhost…...
Golang GORM系列:GORM分页和排序
高效的数据检索和表示是应用程序开发的关键方面。GORM是健壮的Go对象关系映射库,它为开发人员提供了强大的工具来实现这一点。无论你是在构建动态web应用程序还是数据密集型服务,掌握GORM中的分页和排序使您能够提供无缝且高效的用户体验。本文我们将深入…...
【怎么使用Redis实现一个延时队列?】
怎么使用Redis实现一个延时队列? 详细说明Java代码示例解释注意事项使用Redis实现延时队列通常通过有序集合(Sorted Set)来实现,利用Redis的ZSET类型及其相关命令可以很方便地实现这一功能。 有序集合中的每个元素都有一个分数(score),我们可以利用这个分数来存储消息需…...
HarmonyNext上传用户相册图片到服务器
图片选择就不用说了,直接用 无须申请权限 。 上传图片,步骤和android对比稍微有点复杂,可能是为了安全性考虑,需要将图片先拷贝到缓存目录下面,然后再上传,当然你也可以转成Base64,然后和服务…...
宝塔docker 安装oracle11G
1、拉取镜像 sudo docker pull iatebes/oracle_11g #iatebes为用户名2、查看镜像 sudo docker images3、创建并运行容器 docker run -d --privileged --name oralce11g -p 1521:1521 iatebes/oracle_11g4、登录到容器 5、进入容器并修改system用户密码 docker exec -it orac…...
计算机视觉-OpenCV图像处理
1.Matplotlib数据可视化(绘制图像直方图、可视化矩阵) # Matplotlib 数据可视化(绘制图像直方图、可视化矩阵) # 本节主要讲解如何使用 Matplotlib 绘制图像直方图和可视化矩阵。 # 1. 绘制图像直方图 # 2. 可视化矩阵# 1. 绘制图…...
【论文笔记】Transformer^2: 自适应大型语言模型
Code repo: https://github.com/SakanaAI/self-adaptive-llms 摘要 自适应大型语言模型(LLMs)旨在解决传统微调方法的挑战,这些方法通常计算密集且难以处理多样化的任务。本文介绍了Transformer(Transformer-Squared)…...
【医学影像AI】50个眼科影像数据集(1)分类任务
【医学影像】50个眼科影像数据集(1)分类任务 【医学影像】50个眼科影像数据集(2)分割任务 【医学影像】50个眼科影像数据集(3)其它任务 【医学影像AI】50 个眼科影像数据集(1)分类任…...
2025年-G4--lc75--Best Time to Buy and Sell Stock(java版)
1.题目描述 2.思路 思路1: 3.java代码实现 class Solution {public int maxProfit(int[] prices) {// //初始化最小价格为最大值,最大利润为0// int minPriceInteger.MAX_VALUE;// int maxProfit0;// //遍历价格数组// for (int price : prices)// …...
STM32 PWM脉冲宽度调制介绍
目录 背景 PWM 模式 影子寄存器和预装载寄存器 PWM对齐模式 PWM 边沿对齐模式 向上计数配置 向下计数的配置 PWM 中央对齐模式 程序 第一步、使能GPIOB组、AFIO、TIM3外设时钟 第二步、输出通道端口配置编辑 第三步、定时器配置产生频率 第四步、PWM输出配置 第…...
WebGPU顶点插槽(Vertex Buffer Slot)使用指南
本文将通过完整代码示例和逐行注释,详细解释WebGPU中顶点缓冲区的配置方法,特别针对shaderLocation参数与着色器的对应关系进行重点说明。 一、顶点数据定义与缓冲区创建 // 定义顶点数据结构(逻辑层) // 包含位置(position)、颜…...
JSP(学习自用)
一、本质 JSP解析后就是Servlet类的java代码。 二、jsp内嵌java代码 1、声明脚本 用于声明属性和方法。 <%!//声明脚本//用于声明属性和方法public void test(){}String easyName"张三"; %> 2、运行脚本 相当于在service方法中写代码 <% //运行脚本…...
ZYNQ TCP Server PS端千兆网口速率低问题,要修改BSP中LWIP配置参数
用VITIS教程里面 TCP UDP应用工程例程 打算测试PS端千兆网口速率。ZYNQ核心板用黑金的,外部板子自画的网口电路和其它电路。TCP SERVER时 iperf测试速率 只有60~70Mbit/s?然后用UDP SERVER方式,发现能达到 950Mbit/s??…...
毕业设计—基于Spring Boot的社区居民健康管理平台的设计与实现
🎓 毕业设计大揭秘!想要源码和文章?快来私信我吧! Hey小伙伴们~ 👋 毕业季又来啦!是不是都在为毕业设计忙得团团转呢?🤔 别担心,我这里有个小小的福利要分享给你们哦&…...
【计算机网络】数据链路层数据帧(Frame)格式
在计算机网络中,数据帧(Frame) 是数据链路层的协议数据单元(PDU),用于在物理介质上传输数据。数据帧的格式取决于具体的链路层协议(如以太网、PPP、HDLC 等)。以下是常见数据帧格式的…...
机器学习PCA和LDA
主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。 PCA(主成分分析…...
C#: String s = new String(“Hello“)无法编译?编程语言字符集有两个?为什么这种变量名“\u0061\u0062”都能编译通过?
C#: String s new String("Hello")无法编译? C# String类型是literal常量,默认不能用new创建,但可以在unsafe下用char *字符串指针创建。 char* charPtr stackalloc char[2]; charPtr[0] H; charPtr[1] \0; String myString new Strin…...
Visual Studio Code使用ai大模型编成
1、在Visual Studio Code搜索安装roo code 2、去https://openrouter.ai/settings/keys官网申请个免费的配置使用...
nlp|微调大语言模型初探索(1),LLaMA-Factory
前言 微调模型通常比从零开始训练一个模型的技术要求低。公司不需要拥有大量的深度学习专家,利用现有的开源工具和库(如Hugging Face的Transformers等),中小型公司可以轻松地使用和微调大型模型,从而快速实现AI能力的集…...
c++TinML转html
cTinML转html 前言解析解释转译html类定义开头html 结果这是最终效果(部分):  前言 在python.tkinter设计标记语言(转译2-html)中提到了将Ti…...
