• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.arkui.advanced.TabTitleBar (页签型标题栏)
2
3
4页签型标题栏,用于页面之间的切换。仅一级页面适用。
5
6
7> **说明:**
8>
9> 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
10
11
12## 导入模块
13
14```
15import { TabTitleBar } from "@ohos.arkui.advanced.TabTitleBar"
16```
17
18
19## 子组件
20
2122
23## 属性
24不支持[通用属性](ts-universal-attributes-size.md)
25
26
27## TabTitleBar
28
29TabTitleBar({tabItems: Array<TabTitleBarTabItem>, menuItems?: Array<TabTitleBarMenuItem>, swiperContent: () => void})
30
31**装饰器类型:**\@Component
32
33**系统能力:** SystemCapability.ArkUI.ArkUI.Full
34
35**参数:**
36
37| 名称 | 参数类型 | 必填 | 装饰器类型 | 说明 |
38| -------- | -------- | -------- | -------- | -------- |
39| tabItems | Array<[TabTitleBarTabItem](#tabtitlebartabitem)> | 是 | - | 左侧页签项目列表,定义标题栏左侧的页签项目。 |
40| menuItems | Array<[TabTitleBarMenuItem](#tabtitlebarmenuitem)> | 否 | - | 右侧菜单项目列表,定义标题栏右侧的菜单项目。 |
41| swiperContent | () => void | 是 | \@BuilderParam | 页签列表关联的页面内容构造器。 |
42
43
44## TabTitleBarMenuItem
45
46| 名称 | 类型 | 必填 | 说明 |
47| -------- | -------- | -------- | -------- |
48| value | [ResourceStr](ts-types.md#resourcestr) | 是 | 图标资源。 |
49| isEnabled | boolean | 否 | 是否启用。默认启用。true:启用,false:禁用。 |
50| action | () => void | 否 | 触发时的动作闭包。 |
51
52
53## TabTitleBarTabItem
54
55| 名称 | 类型 | 必填 | 说明 |
56| -------- | -------- | -------- | -------- |
57| title | [ResourceStr](ts-types.md#resourcestr) | 是 | 文字页签。 |
58| icon | [ResourceStr](ts-types.md#resourcestr) | 否 | 图片页签资源。 |
59
60
61## 事件
62不支持[通用事件](ts-universal-events-click.md)
63
64## 示例
65
66```ts
67import { TabTitleBar } from "@ohos.arkui.advanced.TabTitleBar"
68import promptAction from '@ohos.promptAction'
69
70class tabItem {
71  title: ResourceStr;
72  icon?: ResourceStr;
73  constructor(title: ResourceStr,icon?: ResourceStr) {
74    this.title = title
75    this.icon = icon
76  }
77}
78
79interface menuItem {
80  value: ResourceStr;
81  isEnabled?: boolean;
82  action?: () => void
83}
84
85@Entry
86@Component
87struct Index {
88  @Builder
89  componentBuilder() {
90    Text("#1ABC9C\nTURQUOISE")
91      .fontWeight(FontWeight.Bold)
92      .fontSize(14)
93      .width("100%")
94      .textAlign(TextAlign.Center)
95      .fontColor("#CCFFFFFF")
96      .backgroundColor("#1ABC9C")
97    Text("#16A085\nGREEN SEA")
98      .fontWeight(FontWeight.Bold)
99      .fontSize(14)
100      .width("100%")
101      .textAlign(TextAlign.Center)
102      .fontColor("#CCFFFFFF")
103      .backgroundColor("#16A085")
104    Text("#2ECC71\nEMERALD")
105      .fontWeight(FontWeight.Bold)
106      .fontSize(14)
107      .width("100%")
108      .textAlign(TextAlign.Center)
109      .fontColor("#CCFFFFFF")
110      .backgroundColor("#2ECC71")
111    Text("#27AE60\nNEPHRITIS")
112      .fontWeight(FontWeight.Bold)
113      .fontSize(14)
114      .width("100%")
115      .textAlign(TextAlign.Center)
116      .fontColor("#CCFFFFFF")
117      .backgroundColor("#27AE60")
118    Text("#3498DB\nPETER RIVER")
119      .fontWeight(FontWeight.Bold)
120      .fontSize(14)
121      .width("100%")
122      .textAlign(TextAlign.Center)
123      .fontColor("#CCFFFFFF")
124      .backgroundColor("#3498DB")
125  }
126
127  private readonly tabItems: Array<tabItem> = [new tabItem('页签1'),new tabItem('页签2'),new tabItem('页签3'),new tabItem("Happy",$r('app.media.emoji_happy')),new tabItem('页签4')]
128  private  readonly menuItems: Array<menuItem> = [
129    {
130      value: $r('app.media.ic_public_reduce'),
131      isEnabled: true,
132      action: () => promptAction.showToast({ message: "on item click! index 0" })
133    },
134    {
135      value: $r('app.media.ic_public_edit'),
136      isEnabled: true,
137      action: () => promptAction.showToast({ message: "on item click! index 1" })
138    },
139    {
140      value: $r('app.media.ic_public_save'),
141      isEnabled: true,
142      action: () => promptAction.showToast({ message: "on item click! index 2" })
143    },
144  ]
145
146  build() {
147    Row() {
148      Column() {
149        TabTitleBar({
150          swiperContent: this.componentBuilder,
151          tabItems: this.tabItems,
152          menuItems: this.menuItems,
153        })
154      }.width('100%')
155    }.height('100%')
156  }
157}
158```
159
160![zh-cn_image_0000001616916278](figures/zh-cn_image_0000001616916278.png)
161