文档管理中心

ChipGroup

ChipGroup高级组件,提供操作块群组,用于对文件或者资源内容进行分类等场景。

说明

该组件从API Version 12开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

导入模块

收起
自动换行
深色代码主题
复制
  1. import { ChipSize, ChipGroup } from '@kit.ArkUI'

子组件

ChipGroup

收起
自动换行
深色代码主题
复制
  1. ChipGroup({
  2. items: ChipGroupItemOptions[],
  3. itemStyle?: ChipItemStyle,
  4. selectedIndexes?: Array<number>,
  5. multiple?: boolean,
  6. chipGroupSpace?: ChipGroupSpaceOptions,
  7. chipGroupPadding?: ChipGroupPaddingOptions,
  8. onChange?: (selectedIndexes: Array<number>) => void,
  9. suffix?: Callback<void>
  10. })

装饰器类型:@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。

说明
  1. 针对selectedIndexes和multiple接口,multiple等于false的时候,当没有传入selectedIndexes时候,默认是第一个chip被选中,当传入的selectedIndexes有一个以上的元素时候,默认第一个索引的chip被选中。

  2. 针对suffix接口,使用时候需要引入IconGroupSuffix接口,不传入的情况,没有suffix。

  3. 关于图标填充色(fillColor以及activedFillColor)的设置,跟随字体颜色(fontColor)保持一致。若想两者颜色不同,则需要在传入ChipGroupSpaceOptions时,使用prefixSymbol。

ChipGroupItemOptions

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

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

ChipGroupSpaceOptions 定义了chipGroup左右内边距,以及chip与chip直接的间距。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 必填 说明
itemSpace string | number

chip与chip之间的间距(不支持百分比)。

默认值:8

单位:vp

为undefined时,itemSpace走默认值。

startSpace Length

左侧内边距(不支持百分比)。

默认值:16

单位:vp

为undefined时,startSpace走默认值。

endSpace Length

右侧内边距(不支持百分比)。

默认值:16

单位:vp

为undefined时,endSpace走默认值。

ChipGroupPaddingOptions

ChipGroupPaddingOptions 定义了chipGroup上下内边距,以便控制chipGroup的整体高度。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 必填 说明
top Length

chipGroup的上方内边距(不支持百分比)。

默认值:14

为undefined时,top走默认值。

bottom Length

chipGroup的上方内边距(不支持百分比)。

默认值:14

为undefined时,bottom走默认值。

IconGroupSuffix

装饰器类型:@Component

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 必填 装饰器类型 说明
items Array<IconItemOptions | SymbolGlyphModifier> @Require @Prop 自定义builder items。
说明

传参SymbolGlyphModifier时,不支持通过symbolEffect修改动效类型和effectStrategy设置动效。

IconItemOptions

尾部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

IconOptions定义图标的共通属性。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 必填 说明
src ResourceStr 图标图片或图片地址引用。
size SizeOptions 图标大小,不支持百分比。

LabelOptions

Label定义图标的共通属性。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 类型 必填 说明
text string 文本属性

示例

示例1(无最右侧的builder)

该示例实现了无最右侧的builder时效果。

收起
自动换行
深色代码主题
复制
  1. import { ChipSize, ChipGroup } from '@kit.ArkUI'
  2. @Entry
  3. @Preview
  4. @Component
  5. struct Index {
  6. @State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6]
  7. build() {
  8. Column() {
  9. ChipGroup({
  10. items: [
  11. {
  12. prefixIcon: { src: $r('app.media.icon') },
  13. label: { text: "操作块1" },
  14. suffixIcon: { src: $r('sys.media.ohos_ic_public_cut') },
  15. allowClose: false
  16. },
  17. {
  18. prefixIcon: { src: $r('sys.media.ohos_ic_public_copy') },
  19. label: { text: "操作块2" },
  20. allowClose: true
  21. },
  22. {
  23. prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
  24. label: { text: "操作块3" },
  25. allowClose: true
  26. },
  27. {
  28. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
  29. label: { text: "操作块4" },
  30. allowClose: true
  31. },
  32. {
  33. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
  34. label: { text: "操作块5" },
  35. allowClose: true
  36. },
  37. {
  38. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
  39. label: { text: "操作块6" },
  40. allowClose: true
  41. },
  42. ],
  43. itemStyle: {
  44. size: ChipSize.SMALL,
  45. backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
  46. fontColor: $r('sys.color.ohos_id_color_text_primary'),
  47. selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
  48. selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
  49. },
  50. selectedIndexes: this.selected_index,
  51. multiple: false,
  52. chipGroupSpace: { itemSpace: 8, endSpace: 0 },
  53. chipGroupPadding: { top: 10, bottom: 10 },
  54. onChange: (activatedChipsIndex:Array<number>) => {
  55. console.log('chips on clicked, activated index ' + activatedChipsIndex)
  56. },
  57. })
  58. }
  59. }
  60. }

示例2(有最右侧的builder)

该示例通过配置suffix实现最右侧的自定义组件效果。

收起
自动换行
深色代码主题
复制
  1. import { ChipSize, ChipGroup, IconGroupSuffix } from '@kit.ArkUI'
  2. @Entry
  3. @Preview
  4. @Component
  5. struct Index {
  6. @State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6]
  7. @State selected_state: boolean = true;
  8. @LocalBuilder
  9. ChipGroupSuffix(): void {
  10. IconGroupSuffix({
  11. items: [{
  12. icon: { src: $r('sys.media.ohos_ic_public_search_filled'), size: { width: 36, height: 36 } },
  13. action: () => {
  14. if (this.selected_state == false) {
  15. this.selected_index = [0, 1, 2, 3, 4, 5, 6]
  16. this.selected_state = true
  17. } else {
  18. this.selected_index = []
  19. this.selected_state = false
  20. }
  21. }
  22. }
  23. ]
  24. })
  25. }
  26. build() {
  27. Column() {
  28. ChipGroup({
  29. items: [
  30. {
  31. prefixIcon: { src: $r('app.media.icon') },
  32. label: { text: "操作块1" },
  33. suffixIcon: { src: $r('sys.media.ohos_ic_public_cut') },
  34. allowClose: false
  35. },
  36. {
  37. prefixIcon: { src: $r('sys.media.ohos_ic_public_copy') },
  38. label: { text: "操作块2" },
  39. allowClose: true
  40. },
  41. {
  42. prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
  43. label: { text: "操作块3" },
  44. allowClose: true
  45. },
  46. {
  47. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
  48. label: { text: "操作块4" },
  49. allowClose: true
  50. },
  51. {
  52. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
  53. label: { text: "操作块5" },
  54. allowClose: true
  55. },
  56. {
  57. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
  58. label: { text: "操作块6" },
  59. allowClose: true
  60. },
  61. ],
  62. itemStyle: {
  63. size: ChipSize.NORMAL,
  64. backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
  65. fontColor: $r('sys.color.ohos_id_color_text_primary'),
  66. selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
  67. selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
  68. },
  69. selectedIndexes: this.selected_index,
  70. multiple: true,
  71. chipGroupSpace: { itemSpace: 8, endSpace: 0 },
  72. chipGroupPadding: { top: 10, bottom: 10 },
  73. onChange: (activatedChipsIndex: Array<number>) => {
  74. console.log('chips on clicked, activated index ' + activatedChipsIndex)
  75. },
  76. suffix: this.ChipGroupSuffix
  77. })
  78. }
  79. }
  80. }

示例3(设置Symbol类型图标)

该示例实现了IconGroupSuffix及ChipGroup传入SymbolGlyph资源。

收起
自动换行
深色代码主题
复制
  1. import { ChipSize, ChipGroup, IconGroupSuffix, SymbolGlyphModifier } from '@kit.ArkUI'
  2. @Entry
  3. @Preview
  4. @Component
  5. struct Index {
  6. @State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6];
  7. @State selected_state: boolean = true;
  8. @State prefixModifierNormal: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_star'));
  9. @State prefixModifierActivated: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_star')).fontColor([Color.Red]);
  10. @State suffixModifierNormal: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_wifi'));
  11. @State suffixModifierActivated: SymbolGlyphModifier = new SymbolGlyphModifier($r('sys.symbol.ohos_wifi')).fontColor([Color.Red]);
  12. @LocalBuilder
  13. ChipGroupSuffix(): void {
  14. IconGroupSuffix({
  15. items: [
  16. new SymbolGlyphModifier($r('sys.symbol.magnifyingglass'))
  17. .onClick(() => {
  18. if (this.selected_state == false) {
  19. this.selected_index = [0, 1, 2, 3, 4, 5, 6];
  20. this.selected_state = true;
  21. } else {
  22. this.selected_index = [];
  23. this.selected_state = false;
  24. }
  25. })
  26. ]
  27. })
  28. }
  29. build() {
  30. Column() {
  31. ChipGroup({
  32. items: [
  33. {
  34. prefixSymbol: { normal: this.prefixModifierNormal, activated: this.prefixModifierActivated },
  35. label: { text: "操作块1" },
  36. suffixSymbol: { normal: this.suffixModifierNormal, activated: this.suffixModifierActivated },
  37. allowClose: false,
  38. },
  39. {
  40. prefixSymbol: { normal: this.prefixModifierNormal, activated: this.prefixModifierActivated },
  41. label: { text: "操作块2" },
  42. allowClose: true,
  43. },
  44. {
  45. prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
  46. label: { text: "操作块3" },
  47. allowClose: true,
  48. },
  49. {
  50. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
  51. label: { text: "操作块4" },
  52. allowClose: true,
  53. },
  54. {
  55. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
  56. label: { text: "操作块5" },
  57. allowClose: true,
  58. },
  59. {
  60. prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
  61. label: { text: "操作块6" },
  62. allowClose: true,
  63. },
  64. ],
  65. itemStyle: {
  66. size: ChipSize.NORMAL,
  67. backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
  68. fontColor: $r('sys.color.ohos_id_color_text_primary'),
  69. selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
  70. selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
  71. },
  72. selectedIndexes: this.selected_index,
  73. multiple: true,
  74. chipGroupSpace: { itemSpace: 8, endSpace: 0 },
  75. chipGroupPadding: { top: 10, bottom: 10 },
  76. onChange: (activatedChipsIndex: Array<number>) => {
  77. console.log('chips on clicked, activated index ' + activatedChipsIndex)
  78. },
  79. suffix: this.ChipGroupSuffix
  80. })
  81. }
  82. }
  83. }

在 API参考 中进行搜索
请输入您想要搜索的关键词