文档管理中心

您当前正在浏览HarmonyOS开发者3.0版本配套的开发者文档,对应API能力级别为API 8 Release。此版本文档已归档不再维护,推荐您使用HarmonyOS NEXT版本

通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。

说明

该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

包含子组件TabContent

接口说明

Tabs(value?: {barPosition?: BarPosition, index?: number, controller?: TabsController})

参数:

展开

参数名

参数类型

必填

默认值

参数描述

barPosition

BarPosition

BarPosition.Start

指定页签位置来创建Tabs容器组件。

index

number

0

指定初次初始页签索引。

controller

TabsController

-

设置Tabs控制器。

BarPosition枚举说明

展开

名称

描述

Start

vertical属性方法设置为true时,页签位于容器左侧;vertical属性方法设置为false时,页签位于容器顶部。

End

vertical属性方法设置为true时,页签位于容器右侧;vertical属性方法设置为false时,页签位于容器底部。

属性

不支持触摸热区设置。

展开

名称

参数类型

默认值

描述

vertical

boolean

false

设置为false是为横向Tabs,设置为true时为纵向Tabs。

scrollable

boolean

true

设置为true时可以通过滑动页面进行页面切换,为false时不可滑动切换页面。

barMode

BarMode

BarMode.Fixed

TabBar布局模式,具体描述见BarMode枚举说明。

barWidth

Length

-

TabBar的宽度值。

barHeight

Length

-

TabBar的高度值。

animationDuration

number

200

TabContent滑动动画时长。

BarMode枚举说明

展开

名称

描述

Scrollable

TabBar使用实际布局宽度, 超过总长度后可滑动。

Fixed

所有TabBar平均分配宽度。

事件

展开

名称

功能描述

onChange(event: (index: number) => void)

Tab页签切换后触发的事件。

- index: tab标签的索引值。

TabsController

Tabs组件的控制器,用于控制Tabs组件进行页签切换。

导入对象

收起
自动换行
深色代码主题
复制
  1. controller: TabsController = new TabsController()

changeIndex

changeIndex(value: number): void

控制Tabs切换到指定页签。

参数:

展开

参数名

参数类型

必填

默认值

参数描述

value

number

-

页签在Tabs里的索引值,索引值从0开始。

示例

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct TabsExample {
  5. private controller: TabsController = new TabsController()
  6. build() {
  7. Column() {
  8. Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
  9. TabContent() {
  10. Column().width('100%').height('100%').backgroundColor(Color.Pink)
  11. }.tabBar('pink')
  12. TabContent() {
  13. Column().width('100%').height('100%').backgroundColor(Color.Yellow)
  14. }.tabBar('yellow')
  15. TabContent() {
  16. Column().width('100%').height('100%').backgroundColor(Color.Blue)
  17. }.tabBar('blue')
  18. TabContent() {
  19. Column().width('100%').height('100%').backgroundColor(Color.Green)
  20. }.tabBar('green')
  21. }
  22. .vertical(true).scrollable(true).barMode(BarMode.Fixed)
  23. .barWidth(70).barHeight(150).animationDuration(400)
  24. .onChange((index: number) => {
  25. console.info(index.toString())
  26. })
  27. .width('90%').backgroundColor(0xF5F5F5)
  28. }.width('100%').height(150).margin({ top: 5 })
  29. }
  30. }

搜索
请输入您想要搜索的关键词