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