鸿蒙组件学习_Tabs组件

news/2024/7/21 9:37:28 标签: harmonyos, 学习, 华为, Tabs组件, 前端
说明

该组件从API Version 7 开始支持。

子组件

仅可包含子组件TabContent

参数
barPosition     设置Tabs的页签位置,默认值: BarPosition.Start
    Start   vertical属性方法设置为true时,页签位于容器左侧;vertical属性方法设置为false时,页签位于容器顶部。
    End     vertical属性方法设置true时,页签位于容器右侧;vertical属性方法设置为false时,页签位于容器底部。
index   设置初始页签索引,默认值: 0,可选值[0,TabContent子节点数量-1]
controller  设置Tabs控制器(TabsController)
属性
vertical    设置为false时为横向Tabs,设置为true时为纵向Tabs。默认值(false)
scrollable  设置为true时可以通过滑动页面进行页面切换,为false时不可滑动切换页面。默认值:true
barMode     TabBar布局模式
    Scrollable  超过该TabBar总长度可滑动
    Fixed   所有TabBar平均分配barWidth宽度
barWidth    TarBar的宽度值
barHeight   TabBar的高度值
animationDuration   TabContent滑动动画时长。不设置时,点击切换页签无动画,滑动切换有动画;设置时,点击切换和滑动切换都有动画。
事件
onChange((index) => {}) Tab页切换后触发的事件
触发该事件的条件:
1. TabContent支持滑动时,组件触发滑动时触发。
2. 通过控制器API接口调用。
3. 通过状态变量构造的属性值进行修改。
4. 通过页签处点击触发。
TabsController

Tabs组件的控制器,用于控制Tabs组件进行页面切换。不支持一个TabsController控制多个Tabs组件
方法: changeIndex(value) 页签在Tabs里的索引值,索引值从0开始。

练习
@Entry
@Component
struct TabsTest {
  private controller: TabsController = new TabsController()
  private index: number = 0
  build() {
    Column(){
      Tabs({
        barPosition: BarPosition.End,
        index: this.index,
        controller: this.controller
      }){
        TabContent(){
          Text('首页')
        }.tabBar('首页')
        TabContent(){
          Text('分类')
        }.tabBar('分类')
        TabContent(){
          Text('购物')
        }.tabBar('购物')
        TabContent(){
          Text('我的')
        }.tabBar('我的')
      }.vertical(false)
      .barPosition(BarPosition.End)
      .scrollable(true)
      .barMode(BarMode.Fixed)
      .barWidth(300)
      .barHeight(50)
      .animationDuration(100)
      .onChange((index) => {
        this.index = index
      })
      .height('90%')
      Button('切换下一个')
        .onClick(() => {
          this.controller.changeIndex((this.index + 1) % 4)
        })
    }
  }
}

TabContent

说明

仅在Tabs中使用,该组件从API Version 7 开始支持。

子组件

支持单个子组件

tabBar属性可以调用@Builder函数来设计样式


http://www.niftyadmin.cn/n/5473082.html

相关文章

【目标检测】从零开始进行yolov8目标检测环境搭建(详细版教程)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。(专栏订阅用户订阅专栏后免费提供数据集和源码一份,请各位帅哥美女一键三连,超级VIP用户不在服务范围之内) 路虽…

2024.3.19力扣每日一题——好子数组的最大分数

2024.3.19 题目来源我的题解方法一 双指针 题目来源 力扣每日一题;题序:1793 我的题解 方法一 双指针 左右指针初始指向k-1,k1,表示左右边界。参考官方题解 好子数组必须要包含 nums[k],那么我们可以使用两个指针 left 和 righ…

MySQL数据库 数据库基本操作(三):表的增删查改(中)

1. 数据库的约束 1.1 约束类型(一般发生于表的创建中) NOT NULL - 指示某列不能存储 NULL 值。UNIQUE - 保证某列的每行必须有唯一的值。DEFAULT - 规定没有给列赋值时的默认值。PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合&#xf…

数据结构顺序表的初始化,头插,尾插,头删,尾删,指定位置删除,指定位置插入,查找,销毁(详解)

目录 前言顺序表的介绍静态顺序表动态顺序表一.顺序表的初始化二.销毁扩容顺序表打印顺序表三.头插四.尾插五.头删六.尾删七.指定位置之前(包括指定位置)的插入八.指定位置数据的删除九.查找全部的代码实现总结 前言 数据结构是什么? 数据结…

C++ setmap

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:C知识分享⏪   🚚代码仓库:C高阶🚚   🌹关注我🫵带你学习更多C知识   🔝🔝 目录 前言 一.树形结构的关联式容器 &#x…

从新手到专家:精通MacOS上的Homebrew安装

I. 前言 在介绍如何精通MacOS上的Homebrew安装之前,首先需要了解什么是Homebrew以及为什么要使用它。 1. Homebrew是什么? Homebrew是一款开源的软件包管理工具,可以让用户轻松地安装、升级和卸载各种软件包。与其他的软件包管理器相比&am…

堆排序及调整算法

调整算法 向上调整: 对大堆向上调整: adujust_up void adjust_up(int* a, int child) {int parent (child - 1) / 2;while (child > 0){if (a[child] > a[parent]){swap(a[child], a[parent]);child parent;parent (child - 1) / 2;}else//默…

ROS2高效学习第十章 -- ros2 高级组件之大型项目中的 launch 其二

ros2 高级组件之大型项目中的 launch 1 前言和资料2 正文2.1 启动 turtlesim,生成一个 turtle ,设置背景色2.2 使用 event handler 重写上节的样例2.3 turtle_tf_mimic_rviz_launch 样例 3 总结 1 前言和资料 早在ROS2高效学习第四章 – ros2 topic 编程…