鸿蒙组件学习_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函数来设计样式

相关推荐

  1. 鸿蒙组件学习_Tabs

    2024-04-05 22:14:01       17 阅读
  2. 鸿蒙(HarmonyOS)应用开发——容器组件Tabs

    2024-04-05 22:14:01       39 阅读
  3. 鸿蒙组件学习_Text

    2024-04-05 22:14:01       14 阅读
  4. 鸿蒙组件学习_Image

    2024-04-05 22:14:01       18 阅读
  5. 鸿蒙组件学习_video

    2024-04-05 22:14:01       13 阅读
  6. uniapp tab

    2024-04-05 22:14:01       8 阅读
  7. 鸿蒙(HarmonyOS)应用开发——容器组件(List

    2024-04-05 22:14:01       45 阅读

最近更新

  1. ArduPilot开源代码之AP_OpticalFlow_MSP

    2024-04-05 22:14:01       0 阅读
  2. API分页处理指南:Postman中的高效数据浏览技巧

    2024-04-05 22:14:01       1 阅读
  3. 对称加密与非对称加密如何实现密钥交换

    2024-04-05 22:14:01       1 阅读
  4. 各种音频处理器

    2024-04-05 22:14:01       1 阅读
  5. this指针

    2024-04-05 22:14:01       1 阅读
  6. Object.defineProperty与Proxy对比【简单易懂】

    2024-04-05 22:14:01       1 阅读

热门阅读

  1. 【pytest】`setup`和`teardown`

    2024-04-05 22:14:01       17 阅读
  2. 网络层面测评项

    2024-04-05 22:14:01       16 阅读
  3. docker容器gitlab数据迁移

    2024-04-05 22:14:01       21 阅读
  4. 4. python练习题4-水仙花数

    2024-04-05 22:14:01       14 阅读
  5. 【学习笔记】CF1935F Andrey‘s Tree

    2024-04-05 22:14:01       13 阅读
  6. 栈的应用:20. 有效的括号LeetCode

    2024-04-05 22:14:01       16 阅读
  7. 【六 (1)机器学习-机器学习算法简介】

    2024-04-05 22:14:01       14 阅读