• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ToolBarV2
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @fengluochenai-->
5<!--Designer: @YanSanzo-->
6<!--Tester: @tinygreyy-->
7<!--Adviser: @HelloCrease-->
8
9工具栏用于展示针对当前界面内容的操作选项,在界面底部显示。底部最多显示5个入口,超过则收纳入“更多”子项中,在最右侧显示。<br />
10该组件基于[状态管理V2](../../../ui/state-management/arkts-state-management-overview.md#状态管理v2)实现,相较于[状态管理V1](../../../ui/state-management/arkts-state-management-overview.md#状态管理v1),状态管理V2增强了对数据对象的深度观察与管理能力,不再局限于组件层级。借助状态管理V2,开发者可以通过该组件更灵活地控制工具栏的数据和状态,实现更高效的用户界面刷新。<br>
11
12> **说明:**
13>
14> - 该组件从API version 18开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
15>
16
17## 导入模块
18
19```ts
20import { ToolBarV2 } from '@kit.ArkUI';
21```
22
23## 子组件
24
2526
27
28## ToolBarV2
29
30ToolbarV2({toolBarList: ToolBarV2Item\[], activatedIndex?: number, dividerModifier: DividerModifier, toolBarModifier: ToolBarV2Modifier})
31
32工具栏。
33
34**装饰器类型:**@ComponentV2
35
36**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
37
38**系统能力:** SystemCapability.ArkUI.ArkUI.Full
39
40**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
41
42| 名称                   | 类型                                                               | 必填 | 装饰器类型               | 说明                                                           |
43| -------------------- | ---------------------------------------------------------------- | -- |---------------------|--------------------------------------------------------------|
44| toolBarList          | [ToolBarV2Item](#toolbarv2item)\[]                               | 是  | @Param<br/>@Require | 工具栏列表。                                                       |
45| activatedIndex       | number                                                           | 否  | @Param              | 激活态的子项。<br ></div>默认值:-1,即无工具栏子项为激活态。<br />取值范围:[-1,4]。      |
46| dividerModifier<sup> | [DividerModifier](ts-universal-attributes-attribute-modifier.md#自定义modifier) | 否  | @Param              | 工具栏头部分割线属性,可设置分割线高度、颜色等。<br />默认不生效。                         |
47| toolBarModifier<sup> | [ToolBarV2Modifier](#toolbarv2modifier)                          | 否  | @Param              | 工具栏属性,可设置工具栏高度、背景色、内边距(仅在工具栏子项数量小于5时生效)、是否显示按压态。<br />默认不生效。 |
48
49## ToolBarV2Item
50定义工具栏子项。
51
52**装饰器类型:**@ObservedV2
53
54**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
55
56**系统能力:** SystemCapability.ArkUI.ArkUI.Full
57
58**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
59
60### 属性
61
62| 名称                           | 类型                                              | 必填 | 装饰器类型  | 说明                                                                                                                                                                                                                  |
63| ---------------------------- | ----------------------------------------------- | -- | :----- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
64| content                      | [ToolBarV2ItemText](#toolbarv2itemtext)         | 是  | @Trace | 工具栏子项的文本。                                                                                                                                                                                                           |
65| action                       | [ToolBarV2ItemAction](#toolbarv2itemaction)     | 否  | @Trace | 工具栏子项点击事件。 <br ></div>默认无点击事件。                                                                                                                                                                                      |
66| icon                         | [ToolBarV2ItemIconType](#toolbarv2itemicontype) | 否  | @Trace | 工具栏子项的图标。<br ></div>默认不显示图标。                                                                                                                                                                                        |
67| state                        | [ToolBarV2ItemState](#toolbarv2itemstate)       | 否  | @Trace | 工具栏子项的状态。<br />默认为ToolBarV2ItemState.ENABLE。<br />                                                                                                                                                                           |
68| accessibilityText     | [ResourceStr](ts-types.md#resourcestr)          | 否  | @Trace | 工具栏子项的无障碍文本属性。当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。<br ></div>默认值为当前项content属性内容。                                           |
69| accessibilityDescription | [ResourceStr](ts-types.md#resourcestr)          | 否  | @Trace | 工具栏子项的无障碍描述。此描述用于向用户详细解释当前组件,开发人员应为组件的这一属性提供较为详尽的文本说明,以协助用户理解即将执行的操作及其可能产生的后果。特别是当这些后果无法仅从组件的属性和无障碍文本中直接获知时。如果组件同时具备文本属性和无障碍说明属性,当组件被选中时,系统将首先播报组件的文本属性,随后播报无障碍说明属性的内容。<br />默认值:“单指双击即可执行”。                        |
70| accessibilityLevel  | string                                          | 否  | @Trace | 工具栏子项无障碍重要性。用于控制当前项是否可被无障碍辅助服务所识别。<br ></div>支持的值为:<br />"auto":当前组件会转换"yes"。<br />"yes":当前组件可被无障碍辅助服务所识别。<br />"no":当前组件不可被无障碍辅助服务所识别。<br />"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。<br />默认值:"auto"<br /> |
71
72### constructor
73
74constructor(options: ToolBarV2ItemOptions)
75
76ToolBarV2Item的构造函数。
77
78**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
79
80**系统能力:** SystemCapability.ArkUI.ArkUI.Full
81
82**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
83
84**参数:**
85
86| 参数名       | 类型                                            | 必填 | 说明       |
87| :------ |:----------------------------------------------| :- | :------- |
88| options | [ToolBarV2ItemOptions](#toolbarv2itemoptions) | 是  | 工具栏子项信息。 |
89
90## ToolBarV2ItemOptions
91
92用于构建ToolBarV2Item对象。
93
94**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
95
96**系统能力:** SystemCapability.ArkUI.ArkUI.Full
97
98**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
99
100| 名称                       | 类型                                              | 必填 | 说明                                                                                                                                                                                                                  |
101|:-------------------------| :---------------------------------------------- | :- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
102| content                  | [ToolBarV2ItemText](#toolbarv2itemtext)         | 是  | 工具栏子项的文本。                                                                                                                                                                                                           |
103| action                   | [ToolBarV2ItemAction](#toolbarv2itemaction)     | 否  | 工具栏子项点击事件。<br />默认无点击事件。                                                                                                                                                                                            |
104| icon                     | [ToolBarV2ItemIconType](#toolbarv2itemicontype) | 否  | 工具栏子项的图标。<br />默认不显示图标。                                                                                                                                                                                             |
105| state                    | [ToolBarV2ItemState](#toolbarv2itemstate)       | 否  | 工具栏子项的状态。<br />默认为ToolBarV2ItemState.ENABLE。<br />                                                                                                                                                                  |
106| accessibilityText        | [ResourceStr](ts-types.md#resourcestr)          | 否  | 工具栏子项的无障碍文本属性。当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。<br />默认值为当前项content属性内容。<br />                                          |
107| accessibilityDescription | [ResourceStr](ts-types.md#resourcestr)          | 否  | 工具栏子项的无障碍描述。此描述用于向用户详细解释当前组件,开发人员应为组件的这一属性提供较为详尽的文本说明,以协助用户理解即将执行的操作及其可能产生的后果。特别是当这些后果无法仅从组件的属性和无障碍文本中直接获知时。如果组件同时具备文本属性和无障碍说明属性,当组件被选中时,系统将首先播报组件的文本属性,随后播报无障碍说明属性的内容。<br />默认值为“单指双击即可执行”。                        |
108| accessibilityLevel       | string                                          | 否  | 工具栏子项无障碍重要性。用于控制当前项是否可被无障碍辅助服务所识别。<br ></div>支持的值为:<br />"auto":当前组件会转换"yes"。<br />"yes":当前组件可被无障碍辅助服务所识别。<br />"no":当前组件不可被无障碍辅助服务所识别。<br />"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。<br />默认值:"auto"<br /> |
109
110## ToolBarV2ItemAction
111
112type ToolBarV2ItemAction = (index: number) => void
113
114工具栏子项点击事件回调类型。
115
116**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
117
118**系统能力:** SystemCapability.ArkUI.ArkUI.Full
119
120**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
121
122**参数:**
123
124| 参数名   | 类型     | 必填 | 说明 |
125|:------|:-------|:---|----|
126| index | number | 是  |工具栏子项点击事件的回调。<br /> -index: 表示触发事件的工具栏子项索引。    |
127
128## ToolBarV2ItemText
129
130定义工具栏子项的文本。
131
132**装饰器类型:**@ObservedV2
133
134**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
135
136**系统能力:** SystemCapability.ArkUI.ArkUI.Full
137
138**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
139
140### 属性
141
142| 名称                  | 类型                                                          | 必填 | 装饰器类型  | 说明                                                       |
143|:--------------------|:------------------------------------------------------------| :- | :----- |:---------------------------------------------------------|
144| text                | [ResourceStr](ts-types.md#resourcestr)                      | 是  | @Trace | 工具栏子项的文本。                                                |
145| color               | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | @Trace | 工具栏子项的文本的颜色。<br/>默认值:$r('sys.color.font_primary')       |
146| activatedColor | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | @Trace | 工具栏子项在激活态下文本的颜色。<br></div>默认值:$r('sys.color.font_emphasize') |
147
148### constructor
149
150constructor(options: ToolBarV2ItemTextOptions)
151
152ToolBarV2ItemText的构造函数。
153
154**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
155
156**系统能力:** SystemCapability.ArkUI.ArkUI.Full
157
158**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
159
160**参数:**
161
162| 参数名       | 类型                                                    | 必填 | 说明         |
163| :------ |:------------------------------------------------------| :- | :--------- |
164| options | [ToolBarV2ItemTextOptions](#toolbarv2itemtextoptions) | 是  | 工具栏子项文本信息。 |
165
166## ToolBarV2ItemTextOptions
167
168用于构建ToolBarV2ItemText对象。
169
170**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
171
172**系统能力:** SystemCapability.ArkUI.ArkUI.Full
173
174**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
175
176| 名称                  | 类型                                                          | 必填 | 说明                                                       |
177| :------------------ |:------------------------------------------------------------| :- |:---------------------------------------------------------|
178| text                | [ResourceStr](ts-types.md#resourcestr)                      | 是  | 工具栏子项的文本。                                                |
179| color          | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | 工具栏子项的文本的颜色。<br/>默认值:$r('sys.color.font_primary')       |
180| activatedColor | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | 工具栏子项在激活态下文本的颜色。<br/>默认值:$r('sys.color.font_emphasize') |
181
182## ToolBarV2ItemImage
183
184定义工具栏子项的普通图标。
185
186**装饰器类型:**@ObservedV2
187
188**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
189
190**系统能力:** SystemCapability.ArkUI.ArkUI.Full
191
192**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
193
194### 属性
195
196| 名称                 | 类型                                                          | 必填 | 装饰器类型  | 说明                                                       |
197|:-------------------|:------------------------------------------------------------| :- | :----- |:---------------------------------------------------------|
198| src                | [ResourceStr](ts-types.md#resourcestr)                      | 是  | @Trace | 工具栏子项的图标。                                                |
199| color              | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | @Trace | 工具栏子项的图标的颜色。<br/>默认值:$r('sys.color.icon_primary')       |
200| activatedColor     | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | @Trace | 工具栏子项在激活态下图标的颜色。<br/>默认值:$r('sys.color.icon_emphasize') |
201
202### constructor
203
204constructor(options: ToolBarV2ItemImageOptions)
205
206ToolBarV2ItemImage的构造函数。
207
208**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
209
210**系统能力:** SystemCapability.ArkUI.ArkUI.Full
211
212**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
213
214**参数:**
215
216| 参数名       | 类型                                                    | 必填 | 说明         |
217| :------ | :------------------------------------------------------ | :- | :--------- |
218| options | [ToolBarV2ItemImageOptions](#toolbarv2itemimageoptions) | 是  | 工具栏子项图标信息。 |
219
220## ToolBarV2ItemImageOptions
221
222用于构建ToolBarV2ItemImage对象。
223
224**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
225
226**系统能力:** SystemCapability.ArkUI.ArkUI.Full
227
228**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
229
230| 名称                  | 类型                                                          | 必填 | 说明                                                       |
231|:--------------------|:------------------------------------------------------------| :- |:---------------------------------------------------------|
232| src                 | [ResourceStr](ts-types.md#resourcestr)                      | 是  | 工具栏子项的图标。                                                |
233| color               | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | 工具栏子项的图标的颜色。<br/>默认值:$r('sys.color.icon_primary')       |
234| activatedColor | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 否  | 工具栏子项在激活态下图标的颜色。<br/>默认值:$r('sys.color.icon_emphasize') |
235
236## ToolBarV2ItemIconType
237
238type ToolBarV2ItemIconType = ToolBarV2ItemImage | ToolBarV2SymbolGlyph
239
240工具栏子项图标内容的联合类型。
241
242**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
243
244**系统能力:** SystemCapability.ArkUI.ArkUI.Full
245
246**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
247
248| 类型                                            | 说明            |
249|:----------------------------------------------| :------------ |
250| [ToolBarV2ItemImage](#toolbarv2itemimage)     | 用于定义普通图标。     |
251| [ToolBarV2SymbolGlyph](#toolbarv2symbolglyph) | 用于定义Symbol图标。 |
252
253## ToolBarV2Modifier
254
255ToolBarV2Modifier提供设置工具栏高度(height)、背景色(backgroundColor)、左右内边距(padding,仅在item小于5个时生效)、是否显示按压态(stateEffect)的方法。
256
257**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
258
259**系统能力:** SystemCapability.ArkUI.ArkUI.Full
260
261**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
262
263### backgroundColor
264
265backgroundColor(backgroundColor: ColorMetrics): ToolBarV2Modifier
266
267自定义绘制工具栏背景色的接口,若重载该方法则可进行工具栏背景色的自定义绘制。
268
269**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
270
271**系统能力:** SystemCapability.ArkUI.ArkUI.Full
272
273**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
274
275**参数:**
276
277| 参数名             | 类型                                                          | 必填 | 说明                                                                |
278| --------------- |-------------------------------------------------------------| -- | ----------------------------------------------------------------- |
279| backgroundColor | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12) | 是  | 工具栏背景色。<br />默认背景色为\$r('sys.color.ohos\_id\_color\_toolbar\_bg')。 |
280
281**返回值:**
282
283| 类型                                      | 说明                                      |
284|-----------------------------------------|-----------------------------------------|
285| [ToolBarV2Modifier](#toolbarv2modifier) | 设置backgroundColor后的ToolBarV2Modifier对象。 |
286
287### padding
288
289padding(padding: LengthMetrics): ToolBarV2Modifier
290
291自定义绘制工具栏左右内边距的接口,若重载该方法则可进行工具栏左右内边距的自定义绘制。
292
293**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
294
295**系统能力:** SystemCapability.ArkUI.ArkUI.Full
296
297**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
298
299**参数:**
300
301| 参数名     | 类型                                                            | 必填 | 说明                                                                  |
302| ------- |---------------------------------------------------------------| -- | ------------------------------------------------------------------- |
303| padding | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12) | 是  | 工具栏左右内边距,仅在item小于5个时生效。<br ></div>工具栏默认在item小于5个时padding为24vp,大于等于5个时为0。 |
304
305**返回值:**
306
307| 类型                                      | 说明                              |
308|-----------------------------------------|---------------------------------|
309| [ToolBarV2Modifier](#toolbarv2modifier) | 设置padding后的ToolBarV2Modifier对象。 |
310### height
311
312height(height: LengthMetrics): ToolBarV2Modifier
313
314自定义绘制工具栏高度的接口,若重载该方法则可进行工具栏高度的自定义绘制,此高度不包含分割线高度。
315
316**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
317
318**系统能力:** SystemCapability.ArkUI.ArkUI.Full
319
320**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
321
322**参数:**
323
324| 参数名    | 类型                                                                 | 必填 | 说明                                |
325| ------ | ------------------------------------------------------------------ | -- | --------------------------------- |
326| height | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12) | 是  | 工具栏高度。<br />工具栏高度默认为56vp(不包含分割线)。 |
327
328**返回值:**
329
330| 类型                                      | 说明                             |
331|-----------------------------------------|--------------------------------|
332| [ToolBarV2Modifier](#toolbarv2modifier) | 设置height后的ToolBarV2Modifier对象。 |
333
334### stateEffect
335
336stateEffect(stateEffect: boolean): ToolBarV2Modifier
337
338设置是否显示按压态效果的接口。
339
340**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
341
342**系统能力:** SystemCapability.ArkUI.ArkUI.Full
343
344**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
345
346**参数:**
347
348| 参数名         | 类型      | 必填 | 说明                                                     |
349| ----------- | ------- | -- |--------------------------------------------------------|
350| stateEffect | boolean | 是  | 工具栏是否显示按压态效果。<br />true为显示按压态效果,false为移除按压态效果。默认为true。 |
351
352**返回值:**
353
354| 类型                                      | 说明                                  |
355|-----------------------------------------|-------------------------------------|
356| [ToolBarV2Modifier](#toolbarv2modifier) | 设置stateEffect后的ToolBarV2Modifier对象。 |
357
358## ToolBarV2ItemState
359
360工具栏子项状态枚举。
361
362**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
363
364**系统能力:** SystemCapability.ArkUI.ArkUI.Full
365
366**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
367
368| 名称       | 值 | 说明              |
369| -------- | - | --------------- |
370| ENABLE   | 1 | 工具栏子项为正常可点击状态。  |
371| DISABLE  | 2 | 工具栏子项为不可点击状态。   |
372| ACTIVATE | 3 | 工具栏子项为激活状态,可点击。 |
373
374## ToolBarV2SymbolGlyph
375
376ToolBarV2SymbolGlyph定义Symbol图标的属性。
377
378**装饰器类型**:@ObservedV2
379
380**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
381
382**系统能力:** SystemCapability.ArkUI.ArkUI.Full
383
384**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
385
386### 属性
387
388| 名称        | 类型                                                                   | 必填 | 装饰器类型  | 说明                                                                                   |
389| :-------- | :------------------------------------------------------------------- | :- | :----- | :----------------------------------------------------------------------------------- |
390| normal    | [SymbolGlyphModifier](ts-universal-attributes-attribute-symbolglyphmodifier.md#symbolglyphmodifier) | 是  | @Trace | 工具栏symbol图标普通态样式。   |
391| activated | [SymbolGlyphModifier](ts-universal-attributes-attribute-symbolglyphmodifier.md#symbolglyphmodifier) | 否  | @Trace | 工具栏symbol图标激活态样式。<br />默认值:fontColor:\$r('sys.color.icon\_emphasize'),fontSize:24vp。 |
392
393### constructor
394
395constructor(options: ToolBarV2SymbolGlyphOptions)
396
397ToolBarV2SymbolGlyph的构造函数。
398
399**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
400
401**系统能力:** SystemCapability.ArkUI.ArkUI.Full
402
403**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
404
405**参数:**
406
407| 参数名     | 类型                                                        | 必填 | 说明          |
408| :------ | :---------------------------------------------------------- | :- | :---------- |
409| options | [ToolBarV2SymbolGlyphOptions](#toolbarv2symbolglyphoptions) | 是  | Symbol图标信息。 |
410
411## ToolBarV2SymbolGlyphOptions
412
413ToolBarV2SymbolGlyphOptions定义图标的属性。
414
415**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
416
417**系统能力:** SystemCapability.ArkUI.ArkUI.Full
418
419**设备行为差异:** 该接口在Wearable设备上使用时,应用程序运行异常, 异常信息中提示接口未定义,在其他设备中可正常调用。
420
421| 名称        | 类型                                                                   | 必填 | 说明                                                                                   |
422| --------- | -------------------------------------------------------------------- | -- | ------------------------------------------------------------------------------------ |
423| normal    | [SymbolGlyphModifier](ts-universal-attributes-attribute-symbolglyphmodifier.md#symbolglyphmodifier) | 是  | 工具栏symbol图标普通态样式。   |
424| activated | [SymbolGlyphModifier](ts-universal-attributes-attribute-symbolglyphmodifier.md#symbolglyphmodifier) | 否  | 工具栏symbol图标激活态样式。<br />默认值:fontColor:\$r('sys.color.icon\_emphasize'),fontSize:24vp。 |
425
426## 示例
427
428### 示例1(工具栏不同状态的默认效果)
429
430该示例展示了工具栏子项state属性分别设置ENABLE、DISABLE、ACTIVATE状态的不同显示效果。
431
432```ts
433import { ToolBarV2ItemImage, ToolBarV2ItemState, ToolBarV2ItemText, ToolBarV2Item, ToolBarV2 } from '@kit.ArkUI';
434
435@Entry
436@ComponentV2
437struct Index {
438  @Local toolbarList: ToolBarV2Item[] = []
439
440  aboutToAppear() {
441    this.toolbarList.push(new ToolBarV2Item({
442      content: new ToolBarV2ItemText(
443        {
444          text: '剪贴我是超超超超超超超超超长样式'
445        }
446      ),
447      icon: new ToolBarV2ItemImage({
448        src: $r('sys.media.ohos_ic_public_share')
449      }),
450      action: () => {
451      },
452    }))
453    this.toolbarList.push(
454      new ToolBarV2Item({
455        content: new ToolBarV2ItemText(
456          {
457            text: '拷贝'
458          }
459        ),
460        icon: new ToolBarV2ItemImage({
461          src: $r('sys.media.ohos_ic_public_copy')
462        }),
463        action: () => {
464        },
465        state: ToolBarV2ItemState.DISABLE
466      })
467    )
468    this.toolbarList.push(
469      new ToolBarV2Item({
470        content: new ToolBarV2ItemText(
471          {
472            text: '粘贴'
473          }
474        ),
475        icon: new ToolBarV2ItemImage({
476          src: $r('sys.media.ohos_ic_public_paste')
477        }),
478        action: () => {
479        },
480        state: ToolBarV2ItemState.ACTIVATE
481      })
482    )
483    this.toolbarList.push(
484      new ToolBarV2Item({
485        content: new ToolBarV2ItemText(
486          {
487            text: '全选'
488          }
489        ),
490        icon: new ToolBarV2ItemImage({
491          src: $r('sys.media.ohos_ic_public_select_all')
492        }),
493        action: () => {
494        },
495      })
496    )
497    this.toolbarList.push(
498      new ToolBarV2Item({
499        content: new ToolBarV2ItemText(
500          {
501            text: '分享'
502          }
503        ),
504        icon: new ToolBarV2ItemImage({
505          src: $r('sys.media.ohos_ic_public_share')
506        }),
507        action: () => {
508        },
509      })
510    )
511    this.toolbarList.push(
512      new ToolBarV2Item({
513        content: new ToolBarV2ItemText(
514          {
515            text: '分享'
516          }
517        ),
518        icon: new ToolBarV2ItemImage({
519          src: $r('sys.media.ohos_ic_public_share')
520        }),
521        action: () => {
522        },
523      })
524    )
525  }
526
527  build() {
528    Row() {
529      Stack() {
530        Column() {
531          ToolBarV2({
532            activatedIndex: 2,
533            toolBarList: this.toolbarList,
534          })
535        }
536      }.align(Alignment.Bottom)
537      .width('100%').height('100%')
538    }
539  }
540}
541```
542
543![zh-cn\_image\_toolbar\_example01](figures/zh-cn_image_toolbar_example01.png)
544
545### 示例2(设置工具栏自定义样式)
546
547该示例通过设置属性ToolBarV2Modifier自定义工具栏高度、背景色、按压效果等样式。
548
549```ts
550import {
551  SymbolGlyphModifier,
552  DividerModifier,
553  LengthMetrics,
554  ColorMetrics,
555  ToolBarV2Item,
556  ToolBarV2Modifier,
557  ToolBarV2ItemText,
558  ToolBarV2ItemImage,
559  ToolBarV2,
560  ToolBarV2ItemState,
561  ToolBarV2SymbolGlyph
562} from '@kit.ArkUI';
563
564@Entry
565@ComponentV2
566struct Index {
567  @Local toolbarList: ToolBarV2Item[] = [];
568  private toolBarModifier: ToolBarV2Modifier =
569    new ToolBarV2Modifier().height(LengthMetrics.vp(52))
570      .backgroundColor(ColorMetrics.resourceColor(Color.Transparent))
571      .stateEffect(false);
572  @Local dividerModifier: DividerModifier = new DividerModifier().height(0);
573
574  aboutToAppear() {
575    this.toolbarList.push(
576      new ToolBarV2Item({
577        content: new ToolBarV2ItemText({
578          text: 'Long long long long long long long long text',
579          activatedColor: ColorMetrics.resourceColor($r('sys.color.font_primary'))
580        }),
581        icon: new ToolBarV2SymbolGlyph({
582          normal: new SymbolGlyphModifier($r('sys.symbol.ohos_star')).fontColor([Color.Green]),
583          activated: new SymbolGlyphModifier($r('sys.symbol.ohos_star')).fontColor([Color.Red]),
584        }),
585        action: () => {
586        },
587        state: ToolBarV2ItemState.ACTIVATE,
588      })
589    )
590    this.toolbarList.push(
591      new ToolBarV2Item({
592        content: new ToolBarV2ItemText({
593          text: 'Copy',
594          activatedColor: ColorMetrics.resourceColor('#ffec5d5d')
595        }),
596        icon: new ToolBarV2ItemImage({
597          src: $r('sys.media.ohos_ic_public_copy'),
598          color: ColorMetrics.resourceColor('#ff18cb53'),
599          activatedColor: ColorMetrics.resourceColor('#ffec5d5d'),
600        }),
601        action: () => {
602        },
603        state: ToolBarV2ItemState.DISABLE,
604      }))
605    this.toolbarList.push(
606      new ToolBarV2Item({
607        content: new ToolBarV2ItemText({
608          text: 'Paste',
609          color: ColorMetrics.resourceColor('#ff18cb53')
610        }),
611        icon: new ToolBarV2ItemImage({
612          src: $r('sys.media.ohos_ic_public_paste'),
613        }),
614        action: () => {
615        },
616        state: ToolBarV2ItemState.ACTIVATE,
617      })
618    )
619    this.toolbarList.push(
620      new ToolBarV2Item({
621        content: new ToolBarV2ItemText({
622          text: 'All',
623        }),
624        icon: new ToolBarV2ItemImage({
625          src: $r('sys.media.ohos_ic_public_select_all'),
626        }),
627        action: () => {
628        },
629        state: ToolBarV2ItemState.ACTIVATE,
630      }))
631    this.toolbarList.push(
632      new ToolBarV2Item({
633        content: new ToolBarV2ItemText({
634          text: '分享',
635        }),
636        icon: new ToolBarV2ItemImage({
637          src: $r('sys.media.ohos_ic_public_share'),
638        }),
639        action: () => {
640        },
641      }))
642    this.toolbarList.push(
643      new ToolBarV2Item({
644        content: new ToolBarV2ItemText({
645          text: '分享',
646        }),
647        icon: new ToolBarV2ItemImage({
648          src: $r('sys.media.ohos_ic_public_share'),
649        }),
650        action: () => {
651        },
652      })
653    )
654  }
655
656  build() {
657    Row() {
658      Stack() {
659        Column() {
660          ToolBarV2({
661            toolBarModifier: this.toolBarModifier,
662            dividerModifier: this.dividerModifier,
663            activatedIndex: 0,
664            toolBarList: this.toolbarList,
665          })
666            .height(52)
667        }
668      }.align(Alignment.Bottom)
669      .width('100%').height('100%')
670    }
671  }
672}
673```
674
675![zh-cn\_image\_toolbar\_example02](figures/zh-cn_image_toolbar_example02.png)
676
677### 示例3(设置工具栏自定义播报)
678
679该示例通过设置工具栏子项属性accessibilityText、accessibilityDescription、accessibilityLevel自定义屏幕朗读播报文本。
680
681```ts
682import {
683  DividerModifier,
684  LengthMetrics,
685  ColorMetrics,
686  ToolBarV2Item,
687  ToolBarV2Modifier,
688  ToolBarV2ItemText,
689  ToolBarV2ItemImage,
690  ToolBarV2,
691  ToolBarV2ItemState,
692} from '@kit.ArkUI';
693
694@Entry
695@ComponentV2
696struct Index {
697  @Local toolbarList: ToolBarV2Item[] = [];
698  private toolBarModifier: ToolBarV2Modifier =
699    new ToolBarV2Modifier().height(LengthMetrics.vp(52))
700      .backgroundColor(ColorMetrics.resourceColor(Color.Transparent))
701      .stateEffect(false);
702  @Local dividerModifier: DividerModifier = new DividerModifier().height(0);
703
704  aboutToAppear() {
705    this.toolbarList.push(
706      new ToolBarV2Item({
707        content: new ToolBarV2ItemText({
708          text: '剪贴我是超超超超超超超超超长样式',
709        }),
710        icon: new ToolBarV2ItemImage({
711          src: $r('sys.media.ohos_ic_public_share')
712        }),
713        action: () => {
714        },
715        accessibilityText: '剪贴', //该项屏幕朗读播报文本为‘剪贴’
716        accessibilityDescription: '单指双击即可剪贴', //该项屏幕朗读播报描述为'单指双击即可剪贴'
717        accessibilityLevel: 'yes'  //该项可被无障碍屏幕朗读聚焦
718      })
719    )
720    this.toolbarList.push(
721      new ToolBarV2Item({
722        content: new ToolBarV2ItemText({
723          text: '拷贝',
724        }),
725        icon: new ToolBarV2ItemImage({
726          src: $r('sys.media.ohos_ic_public_copy'),
727        }),
728        action: () => {
729        },
730        state: ToolBarV2ItemState.DISABLE,
731        accessibilityLevel: 'no'  //该项将无法被屏幕朗读服务所识别,屏幕朗读不可聚焦
732      }))
733    this.toolbarList.push(
734      new ToolBarV2Item({
735        content: new ToolBarV2ItemText({
736          text: '粘贴',
737        }),
738        icon: new ToolBarV2ItemImage({
739          src: $r('sys.media.ohos_ic_public_paste'),
740        }),
741        action: () => {
742        },
743        state: ToolBarV2ItemState.ACTIVATE,
744      })
745    )
746    this.toolbarList.push(
747      new ToolBarV2Item({
748        content: new ToolBarV2ItemText({
749          text: '全选',
750        }),
751        icon: new ToolBarV2ItemImage({
752          src: $r('sys.media.ohos_ic_public_select_all'),
753        }),
754        action: () => {
755        },
756      }))
757    this.toolbarList.push(
758      new ToolBarV2Item({
759        content: new ToolBarV2ItemText({
760          text: '分享',
761        }),
762        icon: new ToolBarV2ItemImage({
763          src: $r('sys.media.ohos_ic_public_share'),
764        }),
765        action: () => {
766        },
767      }))
768    this.toolbarList.push(
769      new ToolBarV2Item({
770        content: new ToolBarV2ItemText({
771          text: '分享',
772        }),
773        icon: new ToolBarV2ItemImage({
774          src: $r('sys.media.ohos_ic_public_share'),
775        }),
776        action: () => {
777        },
778      })
779    )
780  }
781
782  build() {
783    Row() {
784      Stack() {
785        Column() {
786          ToolBarV2({
787            toolBarModifier: this.toolBarModifier,
788            dividerModifier: this.dividerModifier,
789            activatedIndex: 0,
790            toolBarList: this.toolbarList,
791          })
792            .height(52)
793        }
794      }.align(Alignment.Bottom)
795      .width('100%').height('100%')
796    }
797  }
798}
799```
800
801![zh-cn\_image\_toolbar\_example01](figures/zh-cn_image_toolbar_example01.png)
802