智能客服
你问我答,随时在线为你解决问题
ChipGroup高级组件,提供操作块群组,用于对文件或者资源内容进行分类等场景。
该组件从API Version 12开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
- import { ChipSize, ChipGroup } from '@kit.ArkUI'
无
- ChipGroup({
- items: ChipGroupItemOptions[],
- itemStyle?: ChipItemStyle,
- selectedIndexes?: Array<number>,
- multiple?: boolean,
- chipGroupSpace?: ChipGroupSpaceOptions,
- chipGroupPadding?: ChipGroupPaddingOptions,
- onChange?: (selectedIndexes: Array<number>) => void,
- suffix?: Callback<void>
- })
装饰器类型:@Component
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
|---|---|---|---|---|
| items | ChipGroupItemOptions[] | 是 | @Require @Prop | 每个chip特定的属性,参考ChipGroupItemOptions[]类型。 为undefined时,ChipGroup默认为空。 |
| itemStyle | ChipItemStyle | 否 | @Prop | chip的style属性,比如颜色,大小等,参考ChipItemStyle类型。 为undefined时,ChipGroup中的Chip式样为默认值。 |
| selectedIndexes | Array<number> | 否 | @Prop | 被选中chip的索引。 为undefined时,默认第一个Chip被选中。 |
| multiple | boolean | 否 | @Prop | true:支持多个chip被选中;false:只能是单个chip被选中。 默认值:false 为undefined时,multiple走默认值。 |
| chipGroupSpace | ChipGroupSpaceOptions | 否 | @Prop | 左右内边距,和chip与chip之间的间距。参考ChipGroupSpaceOptions类型。 为undefined时,chipGroupSpace走默认值。 |
| chipGroupPadding | ChipGroupPaddingOptions | 否 | @Prop | chipGroup的上下内边距,以便控制整体高度。参考ChipGroupPaddingOptions类型。 为undefined时,chipGroupPadding走默认值。 |
| onChange | Callback<Array<number>> | 否 | - | chip状态改变时候的回调方法。 为undefined时,表示解绑事件。 |
| suffix | ()=>void | 否 | @BuilderParam | 最右侧的builder,由使用者自定义,使用时候需引入IconGroupSuffix接口。 默认值:不传入的情况,没有suffix。 |
针对selectedIndexes和multiple接口,multiple等于false的时候,当没有传入selectedIndexes时候,默认是第一个chip被选中,当传入的selectedIndexes有一个以上的元素时候,默认第一个索引的chip被选中。
针对suffix接口,使用时候需要引入IconGroupSuffix接口,不传入的情况,没有suffix。
关于图标填充色(fillColor以及activedFillColor)的设置,跟随字体颜色(fontColor)保持一致。若想两者颜色不同,则需要在传入ChipGroupSpaceOptions时,使用prefixSymbol。
ChipGroupItemOptions定义每个chip的非共通属性。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| prefixIcon | IconOptions | 否 | 前缀Image图标属性。 |
| prefixSymbol | ChipSymbolGlyphOptions | 否 | 前缀SymbolGlyph图标属性。 |
| label | LabelOptions | 是 | 文本属性。 |
| suffixIcon | IconOptions | 否 | 后缀Image图标属性。 |
| suffixSymbol | ChipSymbolGlyphOptions | 否 | 后缀SymbolGlyph图标属性。 |
| allowClose | boolean | 否 | 删除图标是否显示。 默认值:false。 |
suffixIcon有传入参数时,allowClose不生效,suffixIcon没有传入参数时,allowClose决定是否显示删除图标。
ChipItemStyle定义了chip的共通属性。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| size | ChipSize | SizeOptions | 否 | chip尺寸,使用时需要从chip组件引入ChipSize类型。 默认值:ChipSize:ChipSize.NORMAL。 为undefined时,ChipSize走默认值。 |
| backgroundColor | ResourceColor | 否 | chip背景颜色。 默认值:$r('sys.color.ohos_id_color_button_normal')。 为undefined时,backgroundColor走默认值。 |
| fontColor | ResourceColor | 否 | chip文字颜色。 默认值:$r('sys.color.ohos_id_color_text_primary')。 为undefined时,fontColor走默认值。 |
| selectedFontColor | ResourceColor | 否 | chip激活时的文字颜色。 默认值:$r('sys.color.ohos_id_color_text_primary_contrary')。 为undefined时,selectedFontColor走默认值。 |
| selectedBackgroundColor | ResourceColor | 否 | chip激活时的背景颜色。 默认值:$r('sys.color.ohos_id_color_emphasize')。 为undefined时,selectedBackgroundColor走默认值。 |
1.操作块的大小可以是两种类型,一种是ChipSize,为方便使用,有两种尺寸可选分别是NORMAL和SMALL;另一种是SizeOptions。
2.backgroundColor、selectedBackgroundColor赋值undefined时,显示默认背景颜色,赋值非法值时,背景色透明。
ChipGroupSpaceOptions 定义了chipGroup左右内边距,以及chip与chip直接的间距。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
ChipGroupPaddingOptions 定义了chipGroup上下内边距,以便控制chipGroup的整体高度。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
装饰器类型:@Component
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
|---|---|---|---|---|
| items | Array<IconItemOptions | SymbolGlyphModifier> | 是 | @Require @Prop | 自定义builder items。 |
传参SymbolGlyphModifier时,不支持通过symbolEffect修改动效类型和effectStrategy设置动效。
尾部builder接口定义,针对背板大小及颜色设置限制。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| icon | IconOptions | 是 | 自定义Builder icon。 chip大小是ChipSize.SMALL时,suffix默认值:{width: 16,height: 16}。 chip大小是ChipSize.NORMAL时,suffix默认值:{width: 24,height: 24}。 如果想动态修改size,那么必须在引入IconGroupSuffix时,使用SymbolGlyphModifier类型。 |
| action | Callback<void> | 是 | 自定义Builder items 的Callback 为undefined时,表示解绑事件。 |
IconOptions定义图标的共通属性。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| src | ResourceStr | 是 | 图标图片或图片地址引用。 |
| size | SizeOptions | 否 | 图标大小,不支持百分比。 |
Label定义图标的共通属性。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | string | 是 | 文本属性 |
该示例实现了无最右侧的builder时效果。
- import { ChipSize, ChipGroup } from '@kit.ArkUI'
-
- @Entry
- @Preview
- @Component
- struct Index {
- @State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6]
- build() {
- Column() {
- ChipGroup({
- items: [
- {
- prefixIcon: { src: $r('app.media.icon') },
- label: { text: "操作块1" },
- suffixIcon: { src: $r('sys.media.ohos_ic_public_cut') },
- allowClose: false
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_copy') },
- label: { text: "操作块2" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
- label: { text: "操作块3" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
- label: { text: "操作块4" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
- label: { text: "操作块5" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
- label: { text: "操作块6" },
- allowClose: true
- },
- ],
- itemStyle: {
- size: ChipSize.SMALL,
- backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
- fontColor: $r('sys.color.ohos_id_color_text_primary'),
- selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
- selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
- },
- selectedIndexes: this.selected_index,
- multiple: false,
- chipGroupSpace: { itemSpace: 8, endSpace: 0 },
- chipGroupPadding: { top: 10, bottom: 10 },
- onChange: (activatedChipsIndex:Array<number>) => {
- console.log('chips on clicked, activated index ' + activatedChipsIndex)
- },
- })
- }
- }
- }

该示例通过配置suffix实现最右侧的自定义组件效果。
- import { ChipSize, ChipGroup, IconGroupSuffix } from '@kit.ArkUI'
-
- @Entry
- @Preview
- @Component
- struct Index {
- @State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6]
- @State selected_state: boolean = true;
-
- @LocalBuilder
- ChipGroupSuffix(): void {
- IconGroupSuffix({
- items: [{
- icon: { src: $r('sys.media.ohos_ic_public_search_filled'), size: { width: 36, height: 36 } },
- action: () => {
- if (this.selected_state == false) {
- this.selected_index = [0, 1, 2, 3, 4, 5, 6]
- this.selected_state = true
- } else {
- this.selected_index = []
- this.selected_state = false
- }
- }
- }
- ]
- })
- }
-
- build() {
- Column() {
- ChipGroup({
- items: [
- {
- prefixIcon: { src: $r('app.media.icon') },
- label: { text: "操作块1" },
- suffixIcon: { src: $r('sys.media.ohos_ic_public_cut') },
- allowClose: false
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_copy') },
- label: { text: "操作块2" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
- label: { text: "操作块3" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
- label: { text: "操作块4" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
- label: { text: "操作块5" },
- allowClose: true
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
- label: { text: "操作块6" },
- allowClose: true
- },
- ],
- itemStyle: {
- size: ChipSize.NORMAL,
- backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
- fontColor: $r('sys.color.ohos_id_color_text_primary'),
- selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
- selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
- },
- selectedIndexes: this.selected_index,
- multiple: true,
- chipGroupSpace: { itemSpace: 8, endSpace: 0 },
- chipGroupPadding: { top: 10, bottom: 10 },
- onChange: (activatedChipsIndex: Array<number>) => {
- console.log('chips on clicked, activated index ' + activatedChipsIndex)
- },
- suffix: this.ChipGroupSuffix
- })
- }
- }
- }

该示例实现了IconGroupSuffix及ChipGroup传入SymbolGlyph资源。
- import { ChipSize, ChipGroup, IconGroupSuffix, SymbolGlyphModifier } from '@kit.ArkUI'
-
- @Entry
- @Preview
- @Component
- struct Index {
- @State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6];
- @State selected_state: boolean = true;
- @State prefixModifierNormal: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_star'));
- @State prefixModifierActivated: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_star')).fontColor([Color.Red]);
- @State suffixModifierNormal: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_wifi'));
- @State suffixModifierActivated: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_wifi')).fontColor([Color.Red]);
-
- @LocalBuilder
- ChipGroupSuffix(): void {
- IconGroupSuffix({
- items: [
- new SymbolGlyphModifier($r('sys.symbol.magnifyingglass'))
- .onClick(() => {
- if (this.selected_state == false) {
- this.selected_index = [0, 1, 2, 3, 4, 5, 6];
- this.selected_state = true;
- } else {
- this.selected_index = [];
- this.selected_state = false;
- }
- })
- ]
- })
- }
-
- build() {
- Column() {
- ChipGroup({
- items: [
- {
- prefixSymbol: { normal: this.prefixModifierNormal, activated: this.prefixModifierActivated },
- label: { text: "操作块1" },
- suffixSymbol: { normal: this.suffixModifierNormal, activated: this.suffixModifierActivated },
- allowClose: false,
- },
- {
- prefixSymbol: { normal: this.prefixModifierNormal, activated: this.prefixModifierActivated },
- label: { text: "操作块2" },
- allowClose: true,
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
- label: { text: "操作块3" },
- allowClose: true,
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
- label: { text: "操作块4" },
- allowClose: true,
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
- label: { text: "操作块5" },
- allowClose: true,
- },
- {
- prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
- label: { text: "操作块6" },
- allowClose: true,
- },
- ],
- itemStyle: {
- size: ChipSize.NORMAL,
- backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
- fontColor: $r('sys.color.ohos_id_color_text_primary'),
- selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
- selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
- },
- selectedIndexes: this.selected_index,
- multiple: true,
- chipGroupSpace: { itemSpace: 8, endSpace: 0 },
- chipGroupPadding: { top: 10, bottom: 10 },
- onChange: (activatedChipsIndex: Array<number>) => {
- console.log('chips on clicked, activated index ' + activatedChipsIndex)
- },
- suffix: this.ChipGroupSuffix
- })
- }
- }
- }
