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