• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Chip
2
3操作块,用于搜索框历史记录或者邮件发送列表等场景。
4
5> **说明:**
6>
7> 该组件从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8>
9> 该组件不支持在Wearable设备上使用。
10
11## 导入模块
12
13```ts
14import { Chip, ChipOptions, ChipSize } from '@kit.ArkUI';
15```
16
17## 子组件
18
1920
21## Chip
22
23Chip(options:ChipOptions): void
24
25**装饰器类型:**@Builder
26
27**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
28
29**系统能力:** SystemCapability.ArkUI.ArkUI.Full
30
31**参数**:
32
33| 参数名    | 类型                        | 必填 | 说明                 |
34| ------- | --------------------------- | ---- | -------------------- |
35| options | [ChipOptions](#chipoptions) | 是   | 定义Chip组件的参数。 |
36
37## ChipOptions
38
39ChipOptions定义chip的样式及具体式样参数。
40
41**系统能力:** SystemCapability.ArkUI.ArkUI.Full
42
43| 名称            | 类型                                                         | 必填 | 说明                                                         |
44| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
45| size            | [ChipSize](#chipsize) \| [SizeOptions](ts-types.md#sizeoptions) | 否   | 操作块尺寸。<br/>默认值:ChipSize:ChipSize.NORMAL,<br/>   SizeOptions类型参数不支持百分比设置。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
46| enabled         | boolean                                                      | 否   | 操作块是否可选中。<br>默认值:true。<br>true:操作块可选中;false:操作块不可选中。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
47| activated<sup>12+</sup>    | boolean                                        | 否   | 操作块是否为激活态。<br>默认值:false。<br>true:操作块为激活态;false:操作块为非激活态。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                      |
48| prefixIcon      | [PrefixIconOptions](#prefixiconoptions)                      | 否   | 前缀图标属性。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
49| prefixSymbol<sup>12+</sup>  | [ChipSymbolGlyphOptions](#chipsymbolglyphoptions12)              | 否   | 前缀图标属性,symbol类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
50| label           | [LabelOptions](#labeloptions)                                | 是   | 文本属性。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。   |
51| suffixIcon      | [SuffixIconOptions](#suffixiconoptions)                      | 否   | 后缀图标属性。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
52| suffixSymbol<sup>12+</sup>   | [ChipSymbolGlyphOptions](#chipsymbolglyphoptions12)              | 否   | 后缀图标属性,symbol类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
53| suffixSymbolOptions<sup>14+</sup> | [ChipSuffixSymbolGlyphOptions](#chipsuffixsymbolglyphoptions14) | 否 | symbol类型后缀图标属性的无障碍朗读功能属性。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
54| backgroundColor | [ResourceColor](ts-types.md#resourcecolor)                   | 否   | 操作块背景颜色。<br/>默认值:$r('sys.color.ohos_id_color_button_normal')。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
55| activatedBackgroundColor<sup>12+</sup> | [ResourceColor](ts-types.md#resourcecolor)          | 否   | 操作块激活时的背景颜色。<br/>默认值:$r('sys.color.ohos_id_color_emphasize')。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
56| borderRadius    | [Dimension](ts-types.md#dimension10)                         | 否   | 操作块背景圆角半径大小,不支持百分比。<br/>默认值:$r('sys.float.ohos_id_corner_radius_button')。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
57| allowClose      | boolean                                                      | 否   | 删除图标是否显示。<br/>默认值:true。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
58| onClose         | ()=>void                                                     | 否   | 默认删除图标点击事件。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
59| onClicked<sup>12+</sup>     | Callback\<void> | 否   | 操作块点击事件。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                       |
60| direction<sup>12+</sup> | [Direction](ts-appendix-enums.md#direction) | 否 | 布局方向。<br/>默认值:Direction.Auto。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
61| closeOptions<sup>14+</sup> | [CloseOptions](#closeoptions14) | 否 | 默认删除图标的无障碍朗读功能属性。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 |
62| accessibilityDescription<sup>14+</sup> | [ResourceStr](ts-types.md#resourcestr) | 否 | Chip组件的无障碍描述。此描述用于向用户详细解释当前组件,开发人员应为组件的这一属性提供较为详尽的文本说明,以协助用户理解即将执行的操作及其可能产生的后果。特别是当这些后果无法仅从组件的属性和无障碍文本中直接获知时。如果组件同时具备文本属性和无障碍说明属性,当组件被选中时,系统将首先播报组件的文本属性,随后播报无障碍说明属性的内容。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
63| accessibilityLevel<sup>14+</sup> | string | 否 | Chip组件无障碍重要性。用于控制后缀图标是否可被无障碍辅助服务所识别。<br>支持的值为:<br>"auto":当前组件会转化为“yes”。<br>"yes":当前组件可被无障碍辅助服务所识别。<br>"no":当前组件不可被无障碍辅助服务所识别。<br>"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。<br>默认值:"auto"。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 |
64| accessibilitySelectedType<sup>14+</sup> | [AccessibilitySelectedType](#accessibilityselectedtype14) | 否 | Chip组件选中态类型。<br>默认值:当设置了activated属性但未指定accessibilitySelectedType时,默认使用CHECKED类型。当未设置activated属性时,默认使用CLICKED类型。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
65
66> **说明:**
67>
68> 1.suffixSymbol有传入参数时,suffixIcon和allowClose不生效;suffixSymbol没有传入参数、suffixIcon有传入参数时,allowClose不生效;suffixSymbol和suffixIcon都没有传入参数时,allowClose决定是否显示删除图标。
69>
70> 2.backgroundColor和activatedBackgroundColor赋值undefined时,显示默认背景颜色,赋值非法值时,背景色透明。
71>
72> 3.prefixSymbol/suffixSymbol的fontColor默认值,normalFontColor: `[$r('sys.color.ohos_id_color_primary')]`、activatedFontColor: `[$r('sys.color.ohos_id_color_text_primary_contrary')]`。fontColor默认值为16。
73>
74> 4.prefixIcon的fillColor默认值:`$r('sys.color.ohos_id_color_secondary')`,suffixIcon的fillColor默认值:`$r('sys.color.ohos_id_color_primary')`。fillColor对颜色的解析与Image组件保持一致。
75>
76> 5.prefixIcon的activatedFillColor默认值:`$r('sys.color.ohos_id_color_text_primary_contrary')`,suffixIcon的activatedFillColor默认值:`$r('sys.color.ohos_id_color_text_primary_contrary')`。activatedFillColor对颜色的解析与Image组件保持一致。
77
78## ChipSize
79
80ChipSize是chip可指定的尺寸类型,如普通型Chip。
81
82**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
83
84**系统能力:** SystemCapability.ArkUI.ArkUI.Full
85
86| 名称   | 值       | 说明               |
87| ------ | -------- | ------------------ |
88| NORMAL | "NORMAL" | normal尺寸操作块。 |
89| SMALL  | "SMALL"  | small尺寸操作块。  |
90
91## AccessibilitySelectedType<sup>14+</sup>
92
93AccessibilitySelectedType是Chip可指定的选中态类型,用于控制无障碍服务如何向用户传达组件的选中状态。不同的选中态类型提供了不同的语义和用户体验。
94
95**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
96
97**系统能力:** SystemCapability.ArkUI.ArkUI.Full
98
99| 名称 | 值 | 说明 |
100| ---- | -- | ---- |
101| CLICKED | 0 | 点击型。组件不向无障碍服务报告任何选中状态,仅作为可点击组件使用。适用于执行某个操作但不保持状态的场景,如普通按钮。|
102| CHECKED | 1 | 复选型。组件通过 [accessibilityChecked](ts-universal-attributes-accessibility.md#accessibilitychecked13) 属性向无障碍服务报告选中状态。适用于多选场景,如标签筛选、属性选择等。|
103| SELECTED | 2 | 单选型。组件通过 [accessibilitySelected](ts-universal-attributes-accessibility.md#accessibilityselected13) 属性向无障碍服务报告选中状态。适用于表示当前选中项的场景,如导航栏标签、单选列表项等。|
104
105## IconCommonOptions
106
107IconCommonOptions定义图标的共通属性。
108
109**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
110
111**系统能力:** SystemCapability.ArkUI.ArkUI.Full
112
113| 名称      | 类型                                       | 必填 | 说明                                                         |
114| --------- | ------------------------------------------ | ---- | ------------------------------------------------------------ |
115| src       | [ResourceStr](ts-types.md#resourcestr)     | 是   | 图标图片或图片地址引用。 |
116| size      | [SizeOptions](ts-types.md#sizeoptions)     | 否   | 图标大小,不支持百分比。<br/>默认值:{width: 16,height: 16} |
117| fillColor | [ResourceColor](ts-types.md#resourcecolor) | 否   | 图标填充颜色。 |
118| activatedFillColor<sup>12+</sup> | [ResourceColor](ts-types.md#resourcecolor) | 否   | 操作块激活时图标填充颜色。                            |
119
120> **说明:**
121>
122> 仅在图片格式为svg时,fillColor和activatedFillColor生效。
123>
124
125## PrefixIconOptions
126
127PrefixIconOptions定义前缀图标的属性。
128
129继承于[IconCommonOptions](#iconcommonoptions)。
130
131**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
132
133**系统能力:** SystemCapability.ArkUI.ArkUI.Full
134
135## SuffixIconOptions
136
137SuffixIconOptions定义后缀图标的属性。
138
139继承于[IconCommonOptions](#iconcommonoptions)。
140
141**系统能力:** SystemCapability.ArkUI.ArkUI.Full
142
143| 名称   | 类型       | 必填 | 说明               |
144| ------ | ---------- | ---- | ------------------ |
145| action | () => void | 否   | 后缀图标设定事件。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
146| accessibilityText<sup>14+</sup> | [ResourceStr](ts-types.md#resourcestr) | 否 | 后缀图标无障碍文本属性。当后缀图标不包含文本属性时,屏幕朗读选中后缀图标时不播报,使用者无法清楚地知道当前是否选中了后缀图标。为了解决此场景,开发人员可为不包含文字信息的后缀图标设置无障碍文本,当屏幕朗读选中后缀图标时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己是否选中了后缀图标。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
147| accessibilityDescription<sup>14+</sup> | [ResourceStr](ts-types.md#resourcestr) | 否 | 后缀图标的无障碍描述。此描述用于向用户详细解释后缀图标,开发人员应为后缀图标的这一属性提供较为详尽的文本说明,以协助用户理解即将执行的操作及其可能产生的后果。特别是当这些后果无法仅从后缀图标的属性和无障碍文本中直接获知时。如果后缀图标同时具备文本属性和无障碍说明属性,当后缀图标被选中时,系统将首先播报后缀图标的文本属性,随后播报无障碍说明属性的内容。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
148| accessibilityLevel<sup>14+</sup> | string | 否 | 后缀图标无障碍重要性。用于控制后缀图标是否可被无障碍辅助服务所识别。<br>支持的值为:<br>"auto":当前组件存在action时转化为“yes”,不存在action时,转化为“no”。<br>"yes":当前组件可被无障碍辅助服务所识别。<br>"no":当前组件不可被无障碍辅助服务所识别。<br>"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。<br>默认值:"auto"。<br>**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。|
149
150## AccessibilityOptions<sup>14+</sup>
151
152后缀图标的无障碍朗读功能属性。
153
154**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
155
156**系统能力:** SystemCapability.ArkUI.ArkUI.Full
157
158| 名称 | 类型 | 必填 | 说明 |
159| ------ | ---------- | ---- | ------------------ |
160| accessibilityText | [ResourceStr](ts-types.md#resourcestr) | 否 | 无障碍文本属性。当组件不包含文本属性时,屏幕朗读选中此组件时不播报,使用者无法清楚地知道当前选中了什么组件。为了解决此场景,开发人员可为不包含文字信息的组件设置无障碍文本,当屏幕朗读选中此组件时播报无障碍文本的内容,帮助屏幕朗读的使用者清楚地知道自己选中了什么组件。|
161| accessibilityDescription | [ResourceStr](ts-types.md#resourcestr) | 否 | 无障碍描述。此描述用于向用户详细解释当前组件,开发人员应为组件的这一属性提供较为详尽的文本说明,以协助用户理解即将执行的操作及其可能产生的后果。特别是当这些后果无法仅从组件的属性和无障碍文本中直接获知时。如果组件同时具备文本属性和无障碍说明属性,当组件被选中时,系统将首先播报组件的文本属性,随后播报无障碍说明属性的内容。|
162| accessibilityLevel | string | 否 | 无障碍重要性。用于控制某个组件是否可被无障碍辅助服务所识别。<br>支持的值为:<br>"auto":当前组件会转换为“yes”。<br>"yes":当前组件可被无障碍辅助服务所识别。<br>"no":当前组件不可被无障碍辅助服务所识别。<br>"no-hide-descendants":当前组件及其所有子组件不可被无障碍辅助服务所识别。<br>默认值:"auto"。|
163
164## ChipSuffixSymbolGlyphOptions<sup>14+</sup>
165
166symbol类型后缀图标属性的无障碍朗读功能属性类型。
167
168**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
169
170**系统能力:** SystemCapability.ArkUI.ArkUI.Full
171
172| 名称 | 类型 | 必填 | 说明 |
173| ---- | ---- | --- | ---- |
174| action | [VoidCallback](ts-types.md#voidcallback12) | 否 | 后缀图标响应事件。|
175| normalAccessibility | [AccessibilityOptions](#accessibilityoptions14) | 否 | 非激活态无障碍朗读功能属性。|
176| activatedAccessibility | [AccessibilityOptions](#accessibilityoptions14) | 否 | 激活态无障碍朗读功能属性。|
177
178## ChipSymbolGlyphOptions<sup>12+</sup>
179
180ChipSymbolGlyphOptions定义前缀图标和后缀图标的属性。
181
182**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
183
184**系统能力:** SystemCapability.ArkUI.ArkUI.Full
185
186| 名称   | 类型       | 必填 | 说明               |
187| ------ | ---------- | ---- | ------------------ |
188| normal | [SymbolGlyphModifier](ts-universal-attributes-attribute-modifier.md) | 否   | 图标设定事件。 |
189| activated | [SymbolGlyphModifier](ts-universal-attributes-attribute-modifier.md) | 否   | 激活时图标设定事件。 |
190
191> **说明:**
192>
193> 不支持通过symbolEffect修改动效类型和effectStrategy设置动效。
194>
195
196## LabelOptions
197
198LabelOptions定义文本的属性。
199
200**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
201
202**系统能力:** SystemCapability.ArkUI.ArkUI.Full
203
204| 名称        | 类型                                       | 必填 | 说明                                                         |
205| ----------- | ------------------------------------------ | ---- | ------------------------------------------------------------ |
206| text        | string                                     | 是   | 文本文字内容。 |
207| fontSize    | [Dimension](ts-types.md#dimension10)       | 否   | 文字字号,不支持百分比。<br/>默认值:$r('sys.float.ohos_id_text_size_button2') |
208| fontColor   | [ResourceColor](ts-types.md#resourcecolor) | 否   | 文字颜色。<br/>默认值:$r('sys.color.ohos_id_color_text_primary') |
209| activatedFontColor<sup>12+</sup>   | [ResourceColor](ts-types.md#resourcecolor) | 否   | 操作块激活时的文字颜色。<br/>默认值:$r('sys.color.ohos_id_color_text_primary_contrary') |
210| fontFamily  | string                                     | 否   | 文字字体。<br/>默认值:"HarmonyOS Sans" |
211| labelMargin | [LabelMarginOptions](#labelmarginoptions)  | 否   | 文本与左右侧图标之间间距。 |
212| localizedLabelMargin<sup>12+</sup> | [LocalizedLabelMarginOptions](#localizedlabelmarginoptions12) | 否 | 本地化文本与左右侧图标之间间距。<br/>默认值:{<br/>start:  LengthMetrics.vp(6), end: LengthMetrics.vp(6)<br/>} |
213
214## CloseOptions<sup>14+</sup>
215
216默认关闭图标的无障碍朗读功能属性,accessibilityText默认为"删除"。
217
218继承于[AccessibilityOptions](#accessibilityoptions14)。
219
220**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
221
222**系统能力:** SystemCapability.ArkUI.ArkUI.Full
223
224## LabelMarginOptions
225
226LabelMarginOptions定义文本与左右侧图标之间间距。
227
228**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
229
230**系统能力:** SystemCapability.ArkUI.ArkUI.Full
231
232| 名称  | 类型                                 | 必填 | 说明                                   |
233| ----- | ------------------------------------ | ---- | -------------------------------------- |
234| left  | [Dimension](ts-types.md#dimension10) | 否   | 文本与左侧图标之间间距,不支持百分比。 |
235| right | [Dimension](ts-types.md#dimension10) | 否   | 文本与右侧图标之间间距,不支持百分比。 |
236
237## LocalizedLabelMarginOptions<sup>12+</sup>
238
239LocalizedLabelMarginOptions定义本地化文本与左右侧图标之间间距。
240
241**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
242
243**系统能力:** SystemCapability.ArkUI.ArkUI.Full
244
245| 名称  | 类型                                                         | 必填 | 说明                                   |
246| ----- | ------------------------------------------------------------ | ---- | -------------------------------------- |
247| start | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12) | 否   | 文本与左侧图标之间间距,不支持百分比。 |
248| end   | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12) | 否   | 文本与右侧图标之间间距,不支持百分比。 |
249
250## 示例
251
252### 示例1(自定义后缀图标)
253
254该示例通过配置suffixIcon实现自定义操作块的后缀图标。
255
256```ts
257import { Chip, ChipSize } from '@kit.ArkUI';
258
259@Entry
260@Component
261struct Index {
262  build() {
263    Column({ space: 10 }) {
264      Chip({
265        prefixIcon: {
266          // 'app.media.chips'仅作示例,请替换为实际使用图片。
267          src: $r('app.media.chips'),
268          size: { width: 16, height: 16 },
269          fillColor: Color.Red
270        },
271        label: {
272          text: "操作块",
273          fontSize: 12,
274          fontColor: Color.Blue,
275          fontFamily: "HarmonyOS Sans",
276          labelMargin: { left: 20, right: 30 }
277        },
278        suffixIcon: {
279          // 'app.media.close'仅作示例,请替换为实际使用图片。
280          src: $r('app.media.close'),
281          size: { width: 16, height: 16 },
282          fillColor: Color.Red
283        },
284        size: ChipSize.NORMAL,
285        allowClose: false,
286        enabled: true,
287        backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
288        borderRadius: $r('sys.float.ohos_id_corner_radius_button')
289      })
290    }
291  }
292}
293```
294
295
296![](figures/chip1.png)
297
298### 示例2(设置默认后缀图标)
299
300该示例通过配置allowClose为true显示后缀删除图标。
301
302```ts
303import { Chip, ChipSize } from '@kit.ArkUI';
304
305@Entry
306@Component
307struct Index {
308  build() {
309    Column({ space: 10 }) {
310      Chip({
311        prefixIcon: {
312          // 'app.media.chips'仅作示例,请替换为实际使用图片。
313          src: $r('app.media.chips'),
314          size: { width: 16, height: 16 },
315          fillColor: Color.Blue
316        },
317        label: {
318          text: "操作块",
319          fontSize: 12,
320          fontColor: Color.Blue,
321          fontFamily: "HarmonyOS Sans",
322          labelMargin: { left: 20, right: 30 }
323        },
324        size: ChipSize.NORMAL,
325        allowClose: true,
326        enabled: true,
327        backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
328        borderRadius: $r('sys.float.ohos_id_corner_radius_button')
329      })
330    }
331  }
332}
333```
334
335
336![](figures/chip2.png)
337
338### 示例3(不显示后缀图标)
339
340该示例通过配置allowClose为false不显示后缀删除图标。
341
342```ts
343import { Chip, ChipSize } from '@kit.ArkUI';
344
345@Entry
346@Component
347struct Index {
348  build() {
349    Column({ space: 10 }) {
350      Chip({
351        prefixIcon: {
352          // 'app.media.chips'仅作示例,请替换为实际使用图片。
353          src: $r('app.media.chips'),
354          size: { width: 16, height: 16 },
355          fillColor: Color.Blue
356        },
357        label: {
358          text: "操作块",
359          fontSize: 12,
360          fontColor: Color.Blue,
361          fontFamily: "HarmonyOS Sans",
362          labelMargin: { left: 20, right: 30 }
363        },
364        size: ChipSize.SMALL,
365        allowClose: false,
366        enabled: true,
367        backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
368        borderRadius: $r('sys.float.ohos_id_corner_radius_button'),
369        onClose:()=>{
370          console.log("chip on close")
371      }
372      })
373    }
374  }
375}
376```
377
378
379![](figures/chip3.png)
380
381### 示例4(激活态操作块)
382
383该示例通过配置activated实现激活态操作块。
384
385```ts
386import { Chip, ChipSize } from '@kit.ArkUI';
387
388@Entry
389@Component
390struct Index {
391  @State isActivated: boolean = false
392
393  build() {
394    Column({ space: 10 }) {
395      Chip({
396        prefixIcon: {
397          // 'app.media.chips'仅作示例,请替换为实际使用图片。
398          src: $r('app.media.chips'),
399          size: { width: 16, height: 16 },
400          fillColor: Color.Blue,
401          activatedFillColor: $r('sys.color.ohos_id_color_text_primary_contrary')
402        },
403        label: {
404          text: "操作块",
405          fontSize: 12,
406          fontColor: Color.Blue,
407          activatedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
408          fontFamily: "HarmonyOS Sans",
409          labelMargin: { left: 20, right: 30 }
410        },
411        size: ChipSize.NORMAL,
412        allowClose: true,
413        enabled: true,
414        activated: this.isActivated,
415        backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
416        activatedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
417        borderRadius: $r('sys.float.ohos_id_corner_radius_button'),
418        onClose:()=>{
419          console.log("chip on close")
420        },
421        onClicked:()=>{
422          console.log("chip on clicked")
423        }
424      })
425
426      Button('改变激活状态').onClick(()=>{
427        this.isActivated = !this.isActivated
428      })
429    }
430  }
431}
432```
433
434
435![](figures/chip4.gif)
436
437### 示例5(设置symbol类型图标)
438
439Chip组件的前缀、后缀图标使用symbol类型资源展示。
440
441```ts
442import { Chip, ChipSize, SymbolGlyphModifier } from '@kit.ArkUI';
443
444@Entry
445@Component
446struct Index {
447  @State isActivated: boolean = false
448
449  build() {
450    Column({ space: 10 }) {
451      Chip({
452        prefixIcon: {
453          // 'app.media.chips'仅作示例,请替换为实际使用图片。
454          src: $r('app.media.chips'),
455          size: { width: 16, height: 16 },
456          fillColor: Color.Blue,
457          activatedFillColor: $r('sys.color.ohos_id_color_text_primary_contrary')
458        },
459		prefixSymbol: {
460          normal: new SymbolGlyphModifier($r('sys.symbol.ohos_star')).fontSize(16).fontColor([Color.Green]),
461          activated: new SymbolGlyphModifier($r('sys.symbol.ohos_star')).fontSize(16).fontColor([Color.Red]),
462		},
463        label: {
464          text: "操作块",
465          fontSize: 12,
466          fontColor: Color.Blue,
467          activatedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
468          fontFamily: "HarmonyOS Sans",
469          labelMargin: { left: 20, right: 30 },
470        },
471        size: ChipSize.NORMAL,
472        allowClose: true,
473        enabled: true,
474        activated: this.isActivated,
475        backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
476        activatedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
477        borderRadius: $r('sys.float.ohos_id_corner_radius_button'),
478        onClose:()=>{
479          console.log("chip on close")
480        },
481        onClicked:()=>{
482          console.log("chip on clicked")
483        }
484      })
485
486      Button('改变激活状态').onClick(()=>{
487        this.isActivated = !this.isActivated
488      })
489    }
490  }
491}
492```
493
494![](figures/chip5.gif)
495
496### 示例6(设置镜像效果)
497
498该示例通过配置direction实现Chip布局镜像化展示。
499
500```ts
501
502import { Chip, ChipSize,LengthMetrics } from '@kit.ArkUI';
503
504@Entry
505@Component
506struct ChipPage {
507
508  build() {
509    Column() {
510      Chip({
511        direction: Direction.Rtl,
512        prefixIcon: {
513          // 'app.media.chips'仅作示例,请替换为实际使用图片。
514          src: $r('app.media.chips'),
515          size: { width: 16, height: 16 },
516          fillColor: Color.Red,
517        },
518        label: {
519          text: "操作块",
520          fontSize: 12,
521          fontColor: Color.Blue,
522          fontFamily: "HarmonyOS Sans",
523          localizedLabelMargin: { start: LengthMetrics.vp(20), end: LengthMetrics.vp(20) },
524        },
525        suffixIcon: {
526          // 此处'app.media.close'仅作示例,请替换为实际使用图片。
527          src: $r('app.media.close'),
528          size: { width: 16, height: 16 },
529          fillColor: Color.Red,
530        },
531        size: ChipSize.NORMAL,
532        allowClose: false,
533        enabled: true,
534        backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
535        borderRadius: $r('sys.float.ohos_id_corner_radius_button')
536      })
537    }.justifyContent(FlexAlign.Center)
538    .width('100%')
539    .height('100%')
540  }
541}
542```
543
544
545![](figures/chip6.png)
546
547### 示例7(Image类型无障碍朗读)
548
549该示例代码实现了Chip组件Image类型后缀图标的无障碍朗读功能。
550
551```ts
552// xxx.ets
553import { Chip } from '@kit.ArkUI';
554
555@Builder
556function DefaultFunction(): void {
557}
558
559@Component
560struct SectionGroup {
561  @Prop
562  @Require
563  title: ResourceStr;
564  @BuilderParam
565  @Require
566  content: () => void = DefaultFunction;
567
568  build() {
569    Column({ space: 4 }) {
570      Text(this.title)
571        .fontColor('#FF666666')
572        .fontSize(12)
573      Column({ space: 8 }) {
574        this.content()
575      }
576    }
577    .alignItems(HorizontalAlign.Start)
578    .width('100%')
579  }
580}
581
582@Component
583struct SectionItem {
584  @Prop
585  @Require
586  title: ResourceStr;
587  @BuilderParam
588  @Require
589  content: () => void = DefaultFunction;
590
591  build() {
592    Column({ space: 12 }) {
593      Text(this.title)
594      this.content()
595    }
596    .backgroundColor('#FFFFFFFF')
597    .borderRadius(12)
598    .padding(12)
599    .width('100%')
600  }
601}
602
603@Entry
604@Component
605struct ChipExample2 {
606  @State activated: boolean = false;
607
608  build() {
609    NavDestination() {
610      Scroll() {
611        SectionGroup({ title: '后缀图标播报' }) {
612          SectionItem({ title: '自定义播报' }) {
613            Chip({
614              label: { text: '操作块' },
615              suffixIcon: {
616                src: $r('sys.media.ohos_ic_public_cut'),
617                accessibilityText: '图标',
618                accessibilityDescription: '新手提醒',
619                action: () => {
620                  this.getUIContext().getPromptAction().showToast({
621                    message: '后缀图标被点击!'
622                  });
623                }
624              },
625              onClicked: () => {
626                this.getUIContext().getPromptAction().showToast({
627                  message: '操作块被点击!'
628                });
629              }
630            })
631          }
632        }
633      }
634    }
635  }
636}
637```
638
639### 示例8(symbol类型无障碍朗读)
640
641该示例代码实现了Chip组件symbol类型后缀图标的无障碍朗读功能。
642
643```ts
644
645import { Chip, SymbolGlyphModifier } from '@kit.ArkUI';
646
647@Builder
648function DefaultFunction(): void {
649}
650
651@Component
652struct SectionGroup {
653  @Prop
654  @Require
655  title: ResourceStr;
656  @BuilderParam
657  @Require
658  content: () => void = DefaultFunction;
659
660  build() {
661    Column({ space: 4 }) {
662      Text(this.title)
663        .fontColor('#FF666666')
664        .fontSize(12)
665      Column({ space: 8 }) {
666        this.content()
667      }
668    }
669    .alignItems(HorizontalAlign.Start)
670    .width('100%')
671  }
672}
673
674@Component
675struct SectionItem {
676  @Prop
677  @Require
678  title: ResourceStr;
679  @BuilderParam
680  @Require
681  content: () => void = DefaultFunction;
682
683  build() {
684    Column({ space: 12 }) {
685      Text(this.title)
686      this.content()
687    }
688    .backgroundColor('#FFFFFFFF')
689    .borderRadius(12)
690    .padding(12)
691    .width('100%')
692  }
693}
694
695@Entry
696@Component
697struct ChipExample2 {
698  @State activated: boolean = false;
699
700  build() {
701    NavDestination() {
702      Scroll() {
703          SectionGroup({ title: '后缀Symbol播报' }) {
704            SectionItem({ title: 'activatedAccessibility' }) {
705              Chip({
706                label: { text: '操作块' },
707                activated: true,
708                suffixSymbol: {
709                  activated: new SymbolGlyphModifier($r('sys.symbol.media_sound'))
710                    .fontSize(72),
711                },
712                suffixSymbolOptions: {
713                  activatedAccessibility: {
714                    accessibilityText: '音乐',
715                    accessibilityDescription: '新手提醒'
716                  },
717                  action: () => {
718                    this.getUIContext().getPromptAction().showToast({
719                      message: '后缀Symbol被点击!'
720                    });
721                  }
722                },
723                onClicked: () => {
724                  this.getUIContext().getPromptAction().showToast({
725                    message: '操作块被点击!'
726                  });
727                }
728              })
729            }
730            SectionItem({ title: 'normalAccessibility' }) {
731              Chip({
732                label: { text: '操作块' },
733                suffixSymbol: {
734                  normal: new SymbolGlyphModifier($r('sys.symbol.media_sound'))
735                    .fontSize(72),
736                },
737                suffixSymbolOptions: {
738                  normalAccessibility: {
739                    accessibilityText: '音乐',
740                    accessibilityDescription: '新手提醒'
741                  },
742                  action: () => {
743                    this.getUIContext().getPromptAction().showToast({
744                      message: '后缀Symbol被点击!'
745                    });
746                  }
747                },
748                onClicked: () => {
749                  this.getUIContext().getPromptAction().showToast({
750                    message: '操作块被点击!'
751                  });
752                }
753              })
754            }
755          }
756        }
757      }
758      .padding({
759        top: 8,
760        bottom: 8,
761        left: 16,
762        right: 16,
763      })
764    }
765}
766```
767
768### 示例9(Chip组件无障碍朗读)
769
770此示例展示了Chip组件的无障碍属性设置,包括不同的accessibilitySelectedType类型和各种无障碍属性的使用。
771
772```ts
773import { AccessibilitySelectedType, Chip, ChipSize } from '@kit.ArkUI';
774
775@Entry
776@Component
777struct ChipAccessibilityExample {
778  @State clickedChipActivated: boolean = false;
779  @State checkedChipActivated: boolean = false;
780  @State selectedChipActivated: boolean = false;
781
782  build() {
783    Column({ space: 20 }) {
784      Text("Chip组件无障碍属性示例").fontSize(20).fontWeight(FontWeight.Bold)
785
786      // 点击型Chip - CLICKED类型
787      Chip({
788        label: { text: "点击型Chip" },
789        prefixIcon: {
790          src: $r('sys.media.ohos_app_icon'),
791          fillColor: Color.Blue
792        },
793        size: ChipSize.NORMAL,
794        accessibilitySelectedType: AccessibilitySelectedType.CLICKED, // 点击型
795        accessibilityDescription: "这是一个点击型Chip", // 整体无障碍描述
796        accessibilityLevel: "yes", // 确保可被无障碍服务识别
797        closeOptions: {
798          accessibilityDescription: "删除此Chip,此操作无法撤销" // 为删除按钮提供详细说明
799        },
800        activated: this.clickedChipActivated,
801        onClicked: () => {
802          this.clickedChipActivated = !this.clickedChipActivated;
803          this.getUIContext().getPromptAction().showToast({ message: "点击型Chip被点击" });
804        },
805        onClose: () => {
806          this.getUIContext().getPromptAction().showToast({ message: "点击型Chip的关闭按钮被点击" });
807        }
808      })
809
810      // 复选型Chip - CHECKED类型
811      Chip({
812        label: { text: "复选型Chip" },
813        prefixIcon: {
814          src: $r('sys.media.ohos_app_icon'),
815          fillColor: Color.Green
816        },
817        size: ChipSize.NORMAL,
818        accessibilitySelectedType: AccessibilitySelectedType.CHECKED, // 复选型
819        accessibilityDescription: "这是一个复选型Chip", // 整体无障碍描述
820        activated: this.checkedChipActivated,
821        onClicked: () => {
822          this.checkedChipActivated = !this.checkedChipActivated;
823          this.getUIContext().getPromptAction().showToast({
824            message: this.checkedChipActivated ? "复选型Chip被选中" : "复选型Chip被取消选中"
825          });
826        }
827      })
828
829      // 单选型Chip - SELECTED类型
830      Chip({
831        label: { text: "单选型Chip" },
832        prefixIcon: {
833          src: $r('sys.media.ohos_app_icon'),
834          fillColor: Color.Red
835        },
836        size: ChipSize.NORMAL,
837        accessibilitySelectedType: AccessibilitySelectedType.SELECTED, // 单选型
838        accessibilityDescription: "这是一个单选型Chip", // 整体无障碍描述
839        activated: this.selectedChipActivated,
840        onClicked: () => {
841          this.selectedChipActivated = !this.selectedChipActivated;
842          this.getUIContext().getPromptAction().showToast({
843            message: this.selectedChipActivated ? "单选型Chip被选中" : "单选型Chip被取消选中"
844          });
845        }
846      })
847
848      // 无障碍级别设置示例
849      Chip({
850        label: { text: "无障碍级别为no" },
851        size: ChipSize.NORMAL,
852        accessibilityLevel: "no", // 此Chip不能被无障碍服务识别
853        closeOptions: {
854          accessibilityLevel: "no"
855        },
856        backgroundColor: '#CCCCCC',
857        onClicked: () => {
858          this.getUIContext().getPromptAction().showToast({ message: "此Chip无法被无障碍服务识别" });
859        }
860      })
861    }
862    .width('100%')
863    .padding(16)
864  }
865}
866```