• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SegmentButtonV2
2
3分段按钮组件,创建页签型、单选或多选的胶囊型分段按钮。
4
5> **说明:**
6>
7> 该组件及其子组件从 API version 18 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## 导入模块
10
11```
12import { TabSegmentButtonV2, CapsuleSegmentButtonV2, MultiCapsuleSegmentButtonV2, SegmentButtonV2Items } from '@kit.ArkUI';
13```
14
15## 子组件
16
1718
19## TabSegmentButtonV2
20
21```ts
22TabSegmentButtonV2({
23  items: SegmentButtonV2Items,
24  selectedIndex: number,
25  $selectedIndex?: OnSelectedIndexChange,
26  onItemClicked?: Callback<number>,
27  itemMinFontScale?: number | Resource,
28  itemMaxFontScale?: number | Resource,
29  itemSpace?: LengthMetrics,
30  itemFontSize?: LengthMetrics,
31  itemSelectedFontSize?: LengthMetrics,
32  itemFontColor?: ColorMetrics,
33  itemSelectedFontColor?: ColorMetrics,
34  itemFontWeight?: FontWeight,
35  itemSelectedFontWeight?: FontWeight,
36  itemBorderRadius?: LengthMetrics,
37  itemSelectedBackgroundColor?: ColorMetrics,
38  itemIconSize?: SizeT<LengthMetrics>,
39  itemIconFillColor?: ColorMetrics,
40  itemSelectedIconFillColor?: ColorMetrics,
41  itemSymbolFontSize?: LengthMetrics,
42  itemSymbolFontColor?: ColorMetrics,
43  itemSelectedSymbolFontColor?: ColorMetrics,
44  itemMinHeight?: LengthMetrics,
45  itemPadding?: LocalizedPadding,
46  itemShadow?: ShadowOptions | ShadowStyle,
47  buttonBackgroundColor?: ColorMetrics,
48  buttonBackgroundBlurStyle?: BlurStyle,
49  buttonBackgroundBlurStyleOptions?: BackgroundBlurStyleOptions,
50  buttonBackgroundEffect?: BackgroundEffectOptions,
51  buttonBorderRadius?: LengthMetrics,
52  buttonMinHeight?: LengthMetrics,
53  buttonPadding?: LengthMetrics,
54  languageDirection?: Direction
55})
56```
57
58**装饰器类型:** @ComponentV2
59
60**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
61
62**系统能力:** SystemCapability.ArkUI.ArkUI.Full
63
64| 名称                             | 类型                                                                                                                                           | 只读 | 可选 | 装饰器类型         | 说明                                                                                                                                                                                                                                                                                                     |
65| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
66| items                            | [SegmentButtonV2Items](#segmentbuttonv2items)                                                                                                  | 是   | 否   | @Require<br>@Param | 用于配置分段按钮的选项集合信息。                                                                                                                                                                                                                                                                         |
67| selectedIndex                    | number                                                                                                                                         | 是   | 否   | @Require<br>@Param | 用于配置分段按钮被选中的选项下标。                                                                                                                                                                                                                                                                       |
68| $selectedIndex                   | [OnSelectedIndexChange](#onselectedindexchange)                                                                                                | 否   | 是   | @Event             | 用于配置分段按钮选中项变更时触发的回调函数。                                                                                                                                                                                                                                                             |
69| onItemClicked                    | Callback\<number>                                                                                                                              | 否   | 是   | @Event             | 用于配置分段按钮选项被点击时触发的回调函数。                                                                                                                                                                                                                                                             |
70| buttonBackgroundColor            | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮背板颜色。<br>默认值:`$r('sys.color.segment_button_v2_tab_button_background')`                                                                                                                                                                                                          |
71| buttonBackgroundBlurStyle        | [BlurStyle](ts-universal-attributes-background.md#blurstyle9)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮背板模糊材质。<br>默认值:undefined                                                                                                                                                                                                                                                                           |
72| buttonBackgroundBlurStyleOptions | [BackgroundBlurStyleOptions](ts-universal-attributes-background.md#backgroundblurstyleoptions10对象说明)                                               | 是   | 是   | @Param             | 用于配置分段按钮背板模糊材质配置参数。<br>默认值:undefined                                                                                                                                                                                                                                                                   |
73| buttonBackgroundEffect           | [BackgroundEffectOptions](ts-universal-attributes-background.md#backgroundeffectoptions11)                                                     | 是   | 是   | @Param             | 用于配置分段按钮背板模糊模糊配置参数。<br>默认值:undefined                                                                                                                                                                                                                                                                   |
74| buttonBorderRadius               | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮背板的圆角大小。<br>取值范围:[0, +∞) <br>默认值:`$r('sys.float.segment_button_v2_background_corner_radius')`                                                                                                                                                                            |
75| buttonMinHeight                  | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮最小的高度。<br>取值范围:[0, +∞) <br>默认值:只有纯文本或者纯图标选项时:`$r('sys.float.segment_button_v2_singleline_background_height')`;有图文混合的选项时:`$r('sys.float.segment_button_v2_doubleline_background_height')`                                                          |
76| buttonPadding                    | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮的内边距。<br>取值范围:[0, +∞)<br>默认值:`$r('sys.float.padding_level1')`                                                                                                                                                                                                               |
77| itemSelectedBackgroundColor      | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项背景颜色。<br>默认值:`$r('sys.color.segment_button_v2_tab_selected_item_background')`                                                                                                                                                                                         |
78| itemMinHeight                    | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项的最小高度。<br>取值范围:[0, +∞)<br>默认值:<br>只有纯文本或者纯图标选项时:`$r('sys.float.segment_button_v2_singleline_selected_height')`;有图文混合的选项时:`$r('sys.float.segment_button_v2_doubleline_selected_height')`                                                       |
79| itemPadding                      | [LocalizedPadding](ts-types.md#localizedpadding12)                                                                                             | 是   | 是   | @Param             | 用于配置分段按钮选项的内边距。<br> 默认值:`{ top: LengthMetrics.resource($r('sys.float.padding_level2')), bottom: LengthMetrics.resource($r('sys.float.padding_level2')), start: LengthMetrics.resource($r('sys.float.padding_level4')), end: LengthMetrics.resource($r('sys.float.padding_level4')) }` |
80| itemShadow                       | [ShadowOptions](ts-universal-attributes-image-effect.md#shadowoptions对象说明) \| [ShadowStyle](ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 是   | 是   | @Param             | 用于配置分段按钮选项的阴影。<br>默认值:ShadowStyle.OUTER_DEFAULT_XS                                                                                                                                                                                                                                     |
81| itemSpace                        | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项之间的间隔。<br>取值范围:[0, +∞)<br>默认值:`LengthMetrics.vp(0)`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                           |
82| itemMinFontScale                 | number \| [Resource](ts-types.md#resource)                                                                                                     | 是   | 是   | @Param             | 用于配置分段按钮选项文字大小可以缩小到的最小字体大小缩放倍数。<br>取值范围:[0, 1]<br>默认值:0<br>**说明:** <br>设置的值小于 0 时,按值为 0 处理,设置的值大于 1,按值为 1 处理,异常值默认不生效。                                                                                                                 |
83| itemMaxFontScale                 | number \| [Resource](ts-types.md#resource)                                                                                                     | 是   | 是   | @Param             | 用于配置分段按钮选项文字大小可以放大到的最大字体大小放大倍数。<br>取值范围:[1, 2]<br>默认值:1<br>**说明:** <br>设置的值小于 1 时,按值为 1 处理,设置的值大于 2,按值为 2 处理,异常值默认不生效。                                                                                                    |
84| itemFontSize                     | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体大小。<br>取值范围:[0, +∞)<br>默认值:`14fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                             |
85| itemSelectedFontSize             | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体大小。<br>取值范围:[0, +∞)<br>默认值:`14fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                               |
86| itemFontColor                    | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体颜色。<br>默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                                       |
87| itemSelectedFontColor            | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体颜色。<br> 默认值:`$r('sys.color.font_primary')`                                                                                                                                                                                                                          |
88| itemFontWeight                   | [FontWeight](ts-appendix-enums.md#fontweight)                                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体字重。<br>默认值:FontWeight.Medium                                                                                                                                                                                                                                      |
89| itemSelectedFontWeight           | [FontWeight](ts-appendix-enums.md#fontweight)                                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体字重。<br>默认值:FontWeight.Medium                                                                                                                                                                                                                                        |
90| itemBorderRadius                 | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项的圆角大小。<br>取值范围:[0, +∞)<br> 默认值:`$r('sys.float.segment_button_v2_selected_corner_radius')`                                                                                                                                                                              |
91| itemIconSize                     | [SizeT](../js-apis-arkui-graphics.md#sizett12)\<[LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)>                                 | 是   | 是   | @Param             | 用于配置分段按钮选项中 Image 类型图标大小。<br>取值范围:[0, +∞)<br> 默认值:`{ width: LengthMetrics.vp(24), height: LengthMetrics.vp(24) }`                                                                                                                                                              |
92| itemIconFillColor                | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项图标颜色。<br> 默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                                      |
93| itemSelectedIconFillColor        | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项图标颜色。<br>默认值:`$r('sys.color.font_primary')`                                                                                                                                                                                                                           |
94| itemSymbolFontSize               | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项中 HM Symbol 类型图标大小。<br>取值范围:[0, +∞)<br>默认值:`20fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                    |
95| itemSymbolFontColor              | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项中 HM Symbol 类型图标颜色。<br>默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                      |
96| itemSelectedSymbolFontColor      | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项中 HM Symbol 类型图标颜色。<br>默认值:`$r('sys.color.font_primary')`                                                                                                                                                                                                          |
97| languageDirection                | [Direction](ts-appendix-enums.md#direction)                                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮的布局方向。<br>默认值:Direction.Auto                                                                                                                                                                                                                                                   |
98
99## CapsuleSegmentButtonV2
100
101```ts
102CapsuleSegmentButtonV2({
103  items: SegmentButtonV2Items,
104  selectedIndex: number,
105  $selectedIndex?: OnSelectedIndexChange,
106  onItemClicked?: Callback<number>,
107  itemMinFontScale?: number | Resource,
108  itemMaxFontScale?: number | Resource,
109  itemSpace?: LengthMetrics,
110  itemFontSize?: LengthMetrics,
111  itemSelectedFontSize?: LengthMetrics,
112  itemFontColor?: ColorMetrics,
113  itemSelectedFontColor?: ColorMetrics,
114  itemFontWeight?: FontWeight,
115  itemSelectedFontWeight?: FontWeight,
116  itemBorderRadius?: LengthMetrics,
117  itemSelectedBackgroundColor?: ColorMetrics,
118  itemIconSize?: SizeT<LengthMetrics>,
119  itemIconFillColor?: ColorMetrics,
120  itemSelectedIconFillColor?: ColorMetrics,
121  itemSymbolFontSize?: LengthMetrics,
122  itemSymbolFontColor?: ColorMetrics,
123  itemSelectedSymbolFontColor?: ColorMetrics,
124  itemMinHeight?: LengthMetrics,
125  itemPadding?: LocalizedPadding,
126  itemShadow?: ShadowOptions | ShadowStyle,
127  buttonBackgroundColor?: ColorMetrics,
128  buttonBackgroundBlurStyle?: BlurStyle,
129  buttonBackgroundBlurStyleOptions?: BackgroundBlurStyleOptions,
130  buttonBackgroundEffect?: BackgroundEffectOptions,
131  buttonBorderRadius?: LengthMetrics,
132  buttonMinHeight?: LengthMetrics,
133  buttonPadding?: LengthMetrics,
134  languageDirection?: Direction
135})
136```
137
138**装饰器类型:** @ComponentV2
139
140**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
141
142**系统能力:** SystemCapability.ArkUI.ArkUI.Full
143
144| 名称                             | 类型                                                                                                                                           | 只读 | 可选 | 装饰器类型         | 说明                                                                                                                                                                                                                                                                                                     |
145| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
146| items                            | [SegmentButtonV2Items](#segmentbuttonv2items)                                                                                                  | 是   | 否   | @Require<br>@Param | 用于配置分段按钮的选项集合信息。                                                                                                                                                                                                                                                                         |
147| selectedIndex                    | number                                                                                                                                         | 是   | 否   | @Require<br>@Param | 用于配置分段按钮被选中的选项下标。                                                                                                                                                                                                                                                                       |
148| $selectedIndex                   | [OnSelectedIndexChange](#onselectedindexchange)                                                                                                | 否   | 是   | @Event             | 用于配置分段按钮选中项变更时触发的回调函数。                                                                                                                                                                                                                                                             |
149| onItemClicked                    | Callback\<number>                                                                                                                              | 否   | 是   | @Event             | 用于配置分段按钮选项被点击时触发的回调函数。                                                                                                                                                                                                                                                             |
150| buttonBackgroundColor            | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮背板颜色。<br>默认值:`$r('sys.color.segment_button_v2_tab_button_background')`                                                                                                                                                                                                          |
151| buttonBackgroundBlurStyle        | [BlurStyle](ts-universal-attributes-background.md#blurstyle9)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮背板模糊材质。<br>默认值:undefined                                                                                                                                                                                                                                                                           |
152| buttonBackgroundBlurStyleOptions | [BackgroundBlurStyleOptions](ts-universal-attributes-background.md#backgroundblurstyleoptions10对象说明)                                               | 是   | 是   | @Param             | 用于配置分段按钮背板模糊材质配置参数。<br>默认值:undefined                                                                                                                                                                                                                                                                   |
153| buttonBackgroundEffect           | [BackgroundEffectOptions](ts-universal-attributes-background.md#backgroundeffectoptions11)                                                     | 是   | 是   | @Param             | 用于配置分段按钮背板模糊模糊配置参数。<br>默认值:undefined                                                                                                                                                                                                                                                                   |
154| buttonBorderRadius               | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮背板的圆角大小。<br>取值范围:[0, +∞) <br>默认值:`$r('sys.float.segment_button_v2_background_corner_radius')`                                                                                                                                                                            |
155| buttonMinHeight                  | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮最小的高度。<br>取值范围:[0, +∞) <br>默认值:只有纯文本或者纯图标选项时:`$r('sys.float.segment_button_v2_singleline_background_height')`;有图文混合的选项时:`$r('sys.float.segment_button_v2_doubleline_background_height')`                                                          |
156| buttonPadding                    | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮的内边距。<br>取值范围:[0, +∞)<br>默认值:`$r('sys.float.padding_level1')`                                                                                                                                                                                                               |
157| itemSelectedBackgroundColor      | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项背景颜色。<br>默认值:`$r('sys.color.comp_background_emphasize')`                                                                                                                                                                                                              |
158| itemMinHeight                    | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项的最小高度。<br>取值范围:[0, +∞)<br>默认值:<br>只有纯文本或者纯图标选项时:`$r('sys.float.segment_button_v2_singleline_selected_height')`;有图文混合的选项时:`$r('sys.float.segment_button_v2_doubleline_selected_height')`                                                       |
159| itemPadding                      | [LocalizedPadding](ts-types.md#localizedpadding12)                                                                                             | 是   | 是   | @Param             | 用于配置分段按钮选项的内边距。<br> 默认值:`{ top: LengthMetrics.resource($r('sys.float.padding_level2')), bottom: LengthMetrics.resource($r('sys.float.padding_level2')), start: LengthMetrics.resource($r('sys.float.padding_level4')), end: LengthMetrics.resource($r('sys.float.padding_level4')) }` |
160| itemShadow                       | [ShadowOptions](ts-universal-attributes-image-effect.md#shadowoptions对象说明) \| [ShadowStyle](ts-universal-attributes-image-effect.md#shadowstyle10枚举说明) | 是   | 是   | @Param             | 用于配置分段按钮选项的阴影。<br>默认值:ShadowStyle.OUTER_DEFAULT_XS                                                                                                                                                                                                                                     |
161| itemSpace                        | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项之间的间隔。<br>取值范围:[0, +∞)<br>默认值:`LengthMetrics.vp(0)`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                           |
162| itemMinFontScale                 | number \| [Resource](ts-types.md#resource)                                                                                                     | 是   | 是   | @Param             | 用于配置分段按钮选项文字大小可以缩小到的最小字体大小缩放倍数。<br>取值范围:[0, 1]<br>默认值:0<br>**说明:** <br>设置的值小于 0 时,按值为 0 处理,设置的值大于 1,按值为 1 处理,异常值默认不生效。                                                                                                                 |
163| itemMaxFontScale                 | number \| [Resource](ts-types.md#resource)                                                                                                     | 是   | 是   | @Param             | 用于配置分段按钮选项文字大小可以放大到的最大字体大小放大倍数。<br>取值范围:[1, 2]<br>默认值:1<br>**说明:** <br>设置的值小于 1 时,按值为 1 处理,设置的值大于 2,按值为 2 处理,异常值默认不生效。                                                                                                    |
164| itemFontSize                     | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体大小。<br>取值范围:[0, +∞)<br>默认值:`14fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                             |
165| itemSelectedFontSize             | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体大小。<br>取值范围:[0, +∞)<br>默认值:`14fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                               |
166| itemFontColor                    | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体颜色。<br>默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                                       |
167| itemSelectedFontColor            | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体颜色。<br> 默认值:`$r('sys.color.font_on_primary')`                                                                                                                                                                                                                       |
168| itemFontWeight                   | [FontWeight](ts-appendix-enums.md#fontweight)                                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体字重。<br>默认值:FontWeight.Medium                                                                                                                                                                                                                                      |
169| itemSelectedFontWeight           | [FontWeight](ts-appendix-enums.md#fontweight)                                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体字重。<br>默认值:FontWeight.Medium                                                                                                                                                                                                                                        |
170| itemBorderRadius                 | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项的圆角大小。<br>取值范围:[0, +∞)<br> 默认值:`$r('sys.float.segment_button_v2_selected_corner_radius')`                                                                                                                                                                              |
171| itemIconSize                     | [SizeT](../js-apis-arkui-graphics.md#sizett12)\<[LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)>                                 | 是   | 是   | @Param             | 用于配置分段按钮选项中 Image 类型图标大小。<br>取值范围:[0, +∞)<br> 默认值:`{ width: LengthMetrics.vp(24), height: LengthMetrics.vp(24) }`                                                                                                                                                              |
172| itemIconFillColor                | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项图标颜色。<br> 默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                                      |
173| itemSelectedIconFillColor        | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项图标颜色。<br>默认值:`$r('sys.color.font_on_primary')`                                                                                                                                                                                                                        |
174| itemSymbolFontSize               | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项中 HM Symbol 类型图标大小。<br>取值范围:[0, +∞)<br>默认值:`20fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                    |
175| itemSymbolFontColor              | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项中 HM Symbol 类型图标颜色。<br>默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                      |
176| itemSelectedSymbolFontColor      | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项中 HM Symbol 类型图标颜色。<br>默认值:`$r('sys.color.font_on_primary')`                                                                                                                                                                                                       |
177| languageDirection                | [Direction](ts-appendix-enums.md#direction)                                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮的布局方向。<br>默认值:Direction.Auto                                                                                                                                                                                                                                                   |
178
179## MultiCapsuleSegmentButtonV2
180
181```ts
182MultiCapsuleSegmentButtonV2({
183  items: SegmentButtonV2Items,
184  selectedIndexes: number[],
185  $selectedIndexes: OnSelectedIndexesChange,
186  onItemClicked?: Callback<number>,
187  itemMinFontScale?: number | Resource,
188  itemMaxFontScale?: number | Resource,
189  itemSpace?: LengthMetrics,
190  itemFontColor?: ColorMetrics,
191  itemSelectedFontColor?: ColorMetrics,
192  itemFontSize?: LengthMetrics,
193  itemSelectedFontSize?: LengthMetrics,
194  itemFontWeight?: FontWeight,
195  itemSelectedFontWeight?: FontWeight,
196  itemBorderRadius?: LengthMetrics,
197  itemBackgroundColor?: ColorMetrics,
198  itemBackgroundEffect?: BackgroundEffectOptions,
199  itemBackgroundBlurStyle?: BlurStyle,
200  itemBackgroundBlurStyleOptions?: BackgroundBlurStyleOptions,
201  itemSelectedBackgroundColor?: ColorMetrics,
202  itemIconSize?: SizeT<LengthMetrics>,
203  itemIconFillColor?: ColorMetrics,
204  itemSelectedIconFillColor?: ColorMetrics,
205  itemSymbolFontSize?: LengthMetrics,
206  itemSymbolFontColor?: ColorMetrics,
207  itemSelectedSymbolFontColor?: ColorMetrics,
208  itemMinHeight?: LengthMetrics,
209  itemPadding?: LocalizedPadding,
210  languageDirection?: Direction
211})
212```
213
214**装饰器类型:** @ComponentV2
215
216**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
217
218**系统能力:** SystemCapability.ArkUI.ArkUI.Full
219
220| 名称                           | 类型                                                                                                                                           | 只读 | 可选 | 装饰器类型         | 说明                                                                                                                                                                                                                                                                                                     |
221| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
222| items                          | [SegmentButtonV2Items](#segmentbuttonv2items)                                                                                                  | 是   | 否   | @Require<br>@Param | 用于配置分段按钮的选项集合信息。                                                                                                                                                                                                                                                                         |
223| selectedIndexes                | number[]                                                                                                                                       | 是   | 否   | @Require<br>@Param | 用于配置分段按钮被选中的选项下标集合。                                                                                                                                                                                                                                                                   |
224| $selectedIndexes               | [OnSelectedIndexesChange](#onselectedindexeschange)                                                                                            | 否   | 是   | @Event             | 用于配置分段按钮选中项变更时触发的回调函数。                                                                                                                                                                                                                                                             |
225| onItemClicked                  | Callback\<number>                                                                                                                              | 否   | 是   | @Event             | 用于配置分段按钮选项被点击时触发的回调函数。                                                                                                                                                                                                                                                             |
226| itemBackgroundColor            | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项背板颜色。<br>默认值:`$r('sys.color.segment_button_v2_multi_capsule_button_background')`                                                                                                                                                                                    |
227| itemBackgroundEffect           | [BackgroundEffectOptions](ts-universal-attributes-background.md#backgroundeffectoptions11)                                                     | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项背板效果。                                                                                                                                                                                                                                                                   |
228| itemBackgroundBlurStyle        | [BlurStyle](ts-universal-attributes-background.md#blurstyle9)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项背板材质。                                                                                                                                                                                                                                                                   |
229| itemBackgroundBlurStyleOptions | [BackgroundBlurStyleOptions](ts-universal-attributes-background.md#backgroundblurstyleoptions10对象说明)                                               | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项背板材质配置参数。                                                                                                                                                                                                                                                           |
230| itemSelectedBackgroundColor    | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项背景颜色。<br>默认值:`$r('sys.color.comp_background_emphasize')`                                                                                                                                                                                                              |
231| itemMinHeight                  | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项的最小高度。<br>取值范围:[0, +∞)<br>默认值:<br>只有纯文本或者纯图标选项时:`$r('sys.float.segment_button_v2_singleline_selected_height')`;有图文混合的选项时:`$r('sys.float.segment_button_v2_doubleline_selected_height')`                                                       |
232| itemPadding                    | [LocalizedPadding](ts-types.md#localizedpadding12)                                                                                             | 是   | 是   | @Param             | 用于配置分段按钮选项的内边距。<br> 默认值:`{ top: LengthMetrics.resource($r('sys.float.padding_level2')), bottom: LengthMetrics.resource($r('sys.float.padding_level2')), start: LengthMetrics.resource($r('sys.float.padding_level4')), end: LengthMetrics.resource($r('sys.float.padding_level4')) }` |
233| itemSpace                      | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项之间的间隔。<br>取值范围:[0, +∞)<br>默认值:`LengthMetrics.vp(1)`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                           |
234| itemMinFontScale               | number \| [Resource](ts-types.md#resource)                                                                                                     | 是   | 是   | @Param             | 用于配置分段按钮选项文字大小可以缩小到的最小字体大小缩放倍数。<br>取值范围:[0, 1]<br>默认值:0<br>**说明:** <br>设置的值小于 0 时,按值为 0 处理,设置的值大于 1,按值为 1 处理,异常值默认不生效。                                                                                                                 |
235| itemMaxFontScale               | number \| [Resource](ts-types.md#resource)                                                                                                     | 是   | 是   | @Param             | 用于配置分段按钮选项文字大小可以放大到的最大字体大小放大倍数。<br>取值范围:[1, 2]<br>默认值:1<br>**说明:** <br>设置的值小于 1 时,按值为 1 处理,设置的值大于 2,按值为 2 处理,异常值默认不生效。                                                                                                    |
236| itemSelectedFontSize           | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体大小。<br>取值范围:[0, +∞)<br>默认值:`14fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                               |
237| itemFontColor                  | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体颜色。<br>默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                                       |
238| itemFontSize                   | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体大小。<br>取值范围:[0, +∞)<br>默认值:`14fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                             |
239| itemSelectedFontColor          | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体颜色。<br> 默认值:`$r('sys.color.font_on_primary')`                                                                                                                                                                                                                       |
240| itemFontWeight                 | [FontWeight](ts-appendix-enums.md#fontweight)                                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项字体字重。<br>默认值:FontWeight.Medium                                                                                                                                                                                                                                      |
241| itemSelectedFontWeight         | [FontWeight](ts-appendix-enums.md#fontweight)                                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选中的选项字体字重。<br>默认值:FontWeight.Medium                                                                                                                                                                                                                                        |
242| itemBorderRadius               | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项的圆角大小。<br>取值范围:[0, +∞)<br> 默认值:`$r('sys.float.segment_button_v2_multi_corner_radius')`                                                                                                                                                                                 |
243| itemIconSize                   | [SizeT](../js-apis-arkui-graphics.md#sizett12)\<[LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)>                                 | 是   | 是   | @Param             | 用于配置分段按钮选项中 Image 类型图标大小。<br>取值范围:[0, +∞)<br> 默认值:`{ width: LengthMetrics.vp(24), height: LengthMetrics.vp(24) }`                                                                                                                                                              |
244| itemIconFillColor              | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项图标颜色。<br> 默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                                      |
245| itemSelectedIconFillColor      | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项图标颜色。<br>默认值:`$r('sys.color.font_on_primary')`                                                                                                                                                                                                                        |
246| itemSymbolFontSize             | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)                                                                                  | 是   | 是   | @Param             | 用于配置分段按钮选项中 HM Symbol 类型图标大小。<br>取值范围:[0, +∞)<br>默认值:`20fp`<br>**说明:** <br>不支持设置百分比类型,异常值按默认值处理。                                                                                                                                                                                                                    |
247| itemSymbolFontColor            | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮非选中的选项中 HM Symbol 类型图标颜色。<br>默认值:`$r('sys.color.font_secondary')`                                                                                                                                                                                                      |
248| itemSelectedSymbolFontColor    | [ColorMetrics](../js-apis-arkui-graphics.md#colormetrics12)                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮选中的选项中 HM Symbol 类型图标颜色。<br>默认值:`$r('sys.color.font_on_primary')`                                                                                                                                                                                                       |
249| languageDirection              | [Direction](ts-appendix-enums.md#direction)                                                                                                    | 是   | 是   | @Param             | 用于配置分段按钮的布局方向。<br>默认值:Direction.Auto                                                                                                                                                                                                                                                   |
250
251## SegmentButtonV2Items
252
253分段按钮选项集合。
254
255继承自 Array\<[SegmentButtonV2Item](#segmentbuttonv2item)>
256
257**装饰器类型:** @ObservedV2
258
259**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
260
261**系统能力:** SystemCapability.ArkUI.ArkUI.Full
262
263### constructor
264
265constructor(items: SegmentButtonV2ItemOptions[])
266
267构造函数。
268
269**原子化服务API**: 从 API version 18 开始,该接口支持在原子化服务中使用。
270
271**系统能力**: SystemCapability.ArkUI.ArkUI.Full
272
273**参数:**
274
275| 名称  | 类型                                                              | 必填 | 说明                       |
276| ----- | ----------------------------------------------------------------- | ---- | -------------------------- |
277| items | Array\<[SegmentButtonV2ItemOptions](#segmentbuttonv2itemoptions)> | 是   | 分段按钮选项配置参数集合。 |
278
279### isHybrid
280
281get hasHybrid():boolean
282
283是否有图文混合选项。
284
285**原子化服务API**: 从 API version 18 开始,该接口支持在原子化服务中使用。
286
287**系统能力**: SystemCapability.ArkUI.ArkUI.Full
288
289**返回值:**
290
291| 类型    | 说明                 |
292| ------- | -------------------- |
293| boolean | 是否有图文混合选项。<br>true:有图文混合选项;false:无图文混合选项。 |
294
295## SegmentButtonV2Item
296
297**装饰器类型**: @ObservedV2
298
299**原子化服务API**: 从 API version 18 开始,该接口支持在原子化服务中使用。
300
301**系统能力**: SystemCapability.ArkUI.ArkUI.Full
302
303### 属性
304
305**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
306
307**系统能力:** SystemCapability.ArkUI.ArkUI.Full
308
309| 名称                     | 类型                                                                 | 必填 | 装饰器类型 | 说明                                            |
310| ------------------------ | -------------------------------------------------------------------- | ------ | ---- | ----------------------------------------------- |
311| text                     | [ResourceStr](ts-types.md#resourcestr)                               | 否 | @Trace   | 分段按钮选项文本。<br>默认值:undefined                              |
312| icon                     | [ResourceStr](ts-types.md#resourcestr)                               | 否 | @Trace   | 分段按钮选项图片类型图标。<br>默认值:undefined                      |
313| symbol                   | [Resource](ts-types.md#resource)                                     | 否 | @Trace   | 分段按钮选项 HM Symbol 类型图标。<br>默认值:undefined               |
314| enabled                  | boolean                                                              | 否 | @Trace   | 分段按钮选项是否可用。<br>默认值:true。<br>true:分段按钮选项可用;false:分段按钮选项不可用。                          |
315| textModifier             | [TextModifier](ts-universal-attributes-attribute-modifier.md)        | 否 | @Trace   | 分段按钮选项文本属性样式修改器。<br>默认值:undefined                |
316| iconModifier             | [ImageModifier](ts-universal-attributes-attribute-modifier.md)       | 否 | @Trace   | 分段按钮选项图片类型图标属性样式修改器。<br>默认值:undefined        |
317| symbolModifier           | [SymbolGlyphModifier](ts-universal-attributes-attribute-modifier.md) | 否 | @Trace   | 分段按钮选项 HM Symbol 类型图标属性样式修改器。<br>默认值:undefined |
318| accessibilityText        | [ResourceStr](ts-types.md#resourcestr)                               | 否 | @Trace   | 分段按钮选项无障碍文本。<br>默认值:""                        |
319| accessibilityDescription | [ResourceStr](ts-types.md#resourcestr)                               | 否 | @Trace   | 分段按钮选项无障碍说明。<br>默认值:""                        |
320| accessibilityLevel       | string                                                               | 否 | @Trace   | 分段按钮选项[无障碍重要性](ts-universal-attributes-accessibility.md#accessibilitylevel)。<br/>默认值:"auto"                      |
321
322> **说明**
323>
324> 1. 当`symbol` 与`icon` 同时配置时,`symbol`的显示优先级更高。
325> 2. 当`symbol` 和`symbolModifier` 同时设置了 HM Symbol 资源,`symbolModifier`设置的资源显示优先级更高
326
327### constructor
328
329constructor(options: SegmentButtonV2ItemOptions)
330
331构造函数。
332
333**原子化服务API**: 从 API version 18 开始,该接口支持在原子化服务中使用。
334
335**系统能力**: SystemCapability.ArkUI.ArkUI.Full
336
337**参数:**
338
339| 参数名    | 类型                                                      | 必填 | 说明                   |
340| ------- | --------------------------------------------------------- | ---- | ---------------------- |
341| options | [SegmentButtonV2ItemOptions](#segmentbuttonv2itemoptions) | 是   | 分段按钮选项配置参数。 |
342
343### isHybrid
344
345get isHybrid():boolean
346
347分段按钮选项是否同时配置了文本和图标。
348
349**原子化服务API**: 从 API version 18 开始,该接口支持在原子化服务中使用。
350
351**系统能力**: SystemCapability.ArkUI.ArkUI.Full
352
353**返回值:**
354
355| 类型    | 说明                           |
356| ------- | ------------------------------ |
357| boolean | 选项是否同时配置了文本和图标。 |
358
359## SegmentButtonV2ItemOptions
360
361分段按钮选项配置参数。
362
363**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
364
365**系统能力:** SystemCapability.ArkUI.ArkUI.Full
366
367### 属性
368
369| 名称                     | 类型                                                                 | 必填 | 说明                                            |
370| ------------------------ | -------------------------------------------------------------------- | ---- | ----------------------------------------------- |
371| text                     | [ResourceStr](ts-types.md#resourcestr)                               | 否   | 分段按钮选项文本。<br>默认值:undefined                              |
372| icon                     | [ResourceStr](ts-types.md#resourcestr)                               | 否   | 分段按钮选项图片类型图标。<br>默认值:undefined                      |
373| symbol                   | [Resource](ts-types.md#resource)                                     | 否   | 分段按钮选项 HM Symbol 类型图标。<br>默认值:undefined               |
374| enabled                  | boolean                                                              | 否   | 分段按钮选项是否可用。<br>默认值:true。<br>true:分段按钮选项可用;false:分段按钮选项不可用。                          |
375| textModifier             | [TextModifier](ts-universal-attributes-attribute-modifier.md)        | 否   | 分段按钮选项文本属性样式修改器。<br>默认值:undefined                |
376| iconModifier             | [ImageModifier](ts-universal-attributes-attribute-modifier.md)       | 否   | 分段按钮选项图片类型图标属性样式修改器。<br>默认值:undefined        |
377| symbolModifier           | [SymbolGlyphModifier](ts-universal-attributes-attribute-modifier.md) | 否   | 分段按钮选项 HM Symbol 类型图标属性样式修改器。<br>默认值:undefined |
378| accessibilityText        | [ResourceStr](ts-types.md#resourcestr)                               | 否   | 分段按钮选项无障碍文本。<br>默认值:""                        |
379| accessibilityDescription | [ResourceStr](ts-types.md#resourcestr)                               | 否   | 分段按钮选项无障碍说明。<br>默认值:""                        |
380| accessibilityLevel       | string                                                               | 否   | 分段按钮选项[无障碍重要性](ts-universal-attributes-accessibility.md#accessibilitylevel)。<br/>默认值:"auto"                      |
381
382> **说明**
383>
384> 1. 当`symbol` 与`icon` 同时配置时,`symbol`的显示优先级更高。
385> 2. 当`symbol` 和`symbolModifier` 同时设置了 HM Symbol 资源,`symbolModifier`设置的资源显示优先级更高
386
387## OnSelectedIndexChange
388
389type OnSelectedIndexChange = (selectedIndex: number) => void
390
391单选的分段按钮选中项变更时调用的回调函数的类型。
392
393**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
394
395**系统能力:** SystemCapability.ArkUI.ArkUI.Full
396
397**参数:**
398
399| 参数名        | 类型   | 必填 | 说明               |
400| ------------- | ------ | ---- | ------------------ |
401| selectedIndex | number | 是   | 分段按钮选项项下标 |
402
403## OnSelectedIndexesChange
404
405type OnSelectedIndexesChange = (selectedIndexes: number[]) => void
406
407多选的分段按钮选中项变更时调用的回调函数的类型。
408
409**原子化服务API:** 从 API version 18 开始,该接口支持在原子化服务中使用。
410
411**系统能力:** SystemCapability.ArkUI.ArkUI.Full
412
413**参数:**
414
415| 参数名          | 类型     | 必填 | 说明                   |
416| --------------- | -------- | ---- | ---------------------- |
417| selectedIndexes | number[] | 是   | 分段按钮选项项下标集合 |
418
419## 示例
420
421### 示例 1(页签型分段按钮)
422
423此示例介绍页签型分段按钮的基本用法。
424
425```ts
426import { SegmentButtonV2Items, TabSegmentButtonV2 } from '@kit.ArkUI';
427
428@Entry
429@ComponentV2
430struct TabSegmentButtonV2Example {
431  @Local textItems: SegmentButtonV2Items = new SegmentButtonV2Items([
432    { text: '手机' },
433    { text: '平板' },
434    { text: '2in1' },
435    { text: '智能穿戴' },
436  ]);
437  @Local textSelectedIndex: number = 0;
438  @Local imageItems: SegmentButtonV2Items = new SegmentButtonV2Items([
439    { icon: $r('sys.media.ohos_ic_public_device_phone') },
440    { icon: $r('sys.media.ohos_ic_public_device_pad') },
441    { icon: $r('sys.media.ohos_ic_public_device_matebook') },
442    { icon: $r('sys.media.ohos_ic_public_device_watch') },
443  ]);
444  @Local imageSelectedIndex: number = 0;
445  @Local symbolItems: SegmentButtonV2Items = new SegmentButtonV2Items([
446    { symbol: $r('sys.symbol.phone') },
447    { symbol: $r('sys.symbol.pad') },
448    { symbol: $r('sys.symbol.matebook') },
449    { symbol: $r('sys.symbol.watch') },
450  ]);
451  @Local symbolSelectedIndex: number = 0;
452  @Local hybridItems: SegmentButtonV2Items = new SegmentButtonV2Items([
453    { text: '手机', symbol: $r('sys.symbol.phone') },
454    { text: '平板', symbol: $r('sys.symbol.pad') },
455    { text: '2in1', symbol: $r('sys.symbol.matebook') },
456    { text: '智能穿戴', symbol: $r('sys.symbol.watch') },
457  ]);
458  @Local hybridSelectedIndex: number = 0;
459  @Local freeItems: SegmentButtonV2Items = new SegmentButtonV2Items([
460    { text: '年' },
461    { text: '月' },
462    { text: '周' },
463    { text: '日' },
464    { icon: $r('sys.media.ohos_ic_public_search_filled') },
465  ]);
466  @Local freeSelectedIndex: number = 0;
467
468  build() {
469    Scroll() {
470      Column({ space: 12 }) {
471        VCard({ title: '纯文本选项' }) {
472          TabSegmentButtonV2({
473            items: this.textItems,
474            selectedIndex: this.textSelectedIndex!!,
475          })
476        }
477
478        VCard({ title: '纯图标选项(Image)' }) {
479          TabSegmentButtonV2({
480            items: this.imageItems,
481            selectedIndex: this.imageSelectedIndex!!,
482          })
483        }
484
485        VCard({ title: '纯图标选项(Symbol)' }) {
486          TabSegmentButtonV2({
487            items: this.symbolItems,
488            selectedIndex: this.symbolSelectedIndex!!,
489          })
490        }
491
492        VCard({ title: '图文混合选项' }) {
493          TabSegmentButtonV2({
494            items: this.hybridItems,
495            selectedIndex: this.hybridSelectedIndex!!,
496          })
497        }
498
499        VCard({ title: '自由选项' }) {
500          TabSegmentButtonV2({
501            items: this.freeItems,
502            selectedIndex: this.freeSelectedIndex!!,
503          })
504        }
505      }
506      .constraintSize({ minHeight: '100%' })
507      .justifyContent(FlexAlign.Start)
508      .padding(16)
509    }
510    .backgroundColor('#f1f3f5')
511    .width('100%')
512    .height('100%')
513  }
514}
515
516@Builder
517function Noop() {
518}
519
520@Component
521export struct VCard {
522  @Prop
523  title: ResourceStr;
524  @BuilderParam
525  content: () => void = Noop;
526
527  build() {
528    Column({ space: 8 }) {
529      if (this.title) {
530        Text(this.title)
531          .maxLines(1)
532          .textOverflow({ overflow: TextOverflow.Ellipsis })
533          .constraintSize({ maxWidth: '80%' })
534      }
535      this.content()
536    }
537    .backgroundColor(Color.White)
538    .borderRadius(8)
539    .padding(8)
540    .width('100%')
541  }
542}
543```
544
545![TabSegmentButtonV2](figures/TabSegmentButtonV2.gif)
546
547### 示例 2(单选的胶囊型分段按钮)
548
549该示例介绍单选的胶囊型分段按钮的基本用法。
550
551```ts
552import { CapsuleSegmentButtonV2, SegmentButtonV2Items } from '@kit.ArkUI';
553
554@Entry
555@ComponentV2
556struct CapsuleSegmentButtonV2Example {
557  @Local textItems: SegmentButtonV2Items = new SegmentButtonV2Items([
558    { text: '手机' },
559    { text: '平板' },
560    { text: '2in1' },
561    { text: '智能穿戴' },
562  ]);
563  @Local textSelectedIndex: number = 0;
564  @Local imageItems: SegmentButtonV2Items = new SegmentButtonV2Items([
565    { icon: $r('sys.media.ohos_ic_public_device_phone') },
566    { icon: $r('sys.media.ohos_ic_public_device_pad') },
567    { icon: $r('sys.media.ohos_ic_public_device_matebook') },
568    { icon: $r('sys.media.ohos_ic_public_device_watch') },
569  ]);
570  @Local imageSelectedIndex: number = 0;
571  @Local symbolItems: SegmentButtonV2Items = new SegmentButtonV2Items([
572    { symbol: $r('sys.symbol.phone') },
573    { symbol: $r('sys.symbol.pad') },
574    { symbol: $r('sys.symbol.matebook') },
575    { symbol: $r('sys.symbol.watch') },
576  ]);
577  @Local symbolSelectedIndex: number = 0;
578  @Local hybridItems: SegmentButtonV2Items = new SegmentButtonV2Items([
579    { text: '手机', symbol: $r('sys.symbol.phone') },
580    { text: '平板', symbol: $r('sys.symbol.pad') },
581    { text: '2in1', symbol: $r('sys.symbol.matebook') },
582    { text: '智能穿戴', symbol: $r('sys.symbol.watch') },
583  ]);
584  @Local hybridSelectedIndex: number = 0;
585  @Local freeItems: SegmentButtonV2Items = new SegmentButtonV2Items([
586    { text: '年' },
587    { text: '月' },
588    { text: '周' },
589    { text: '日' },
590    { icon: $r('sys.media.ohos_ic_public_search_filled') },
591  ]);
592  @Local freeSelectedIndex: number = 0;
593
594  build() {
595    Scroll() {
596      Column({ space: 12 }) {
597        VCard({ title: '纯文本选项' }) {
598          CapsuleSegmentButtonV2({
599            items: this.textItems,
600            selectedIndex: this.textSelectedIndex!!,
601          })
602        }
603
604        VCard({ title: '纯图标选项(Image)' }) {
605          CapsuleSegmentButtonV2({
606            items: this.imageItems,
607            selectedIndex: this.imageSelectedIndex!!,
608          })
609        }
610
611        VCard({ title: '纯图标选项(Symbol)' }) {
612          CapsuleSegmentButtonV2({
613            items: this.symbolItems,
614            selectedIndex: this.symbolSelectedIndex!!,
615          })
616        }
617
618        VCard({ title: '图文混合选项' }) {
619          CapsuleSegmentButtonV2({
620            items: this.hybridItems,
621            selectedIndex: this.hybridSelectedIndex!!,
622          })
623        }
624
625        VCard({ title: '自由选项' }) {
626          CapsuleSegmentButtonV2({
627            items: this.freeItems,
628            selectedIndex: this.freeSelectedIndex!!,
629          })
630        }
631      }
632      .constraintSize({ minHeight: '100%' })
633      .justifyContent(FlexAlign.Start)
634      .padding(16)
635    }
636    .backgroundColor('#f1f3f5')
637    .width('100%')
638    .height('100%')
639  }
640}
641
642@Builder
643function Noop() {
644}
645
646@Component
647export struct VCard {
648  @Prop
649  title: ResourceStr;
650  @BuilderParam
651  content: () => void = Noop;
652
653  build() {
654    Column({ space: 8 }) {
655      if (this.title) {
656        Text(this.title)
657          .maxLines(1)
658          .textOverflow({ overflow: TextOverflow.Ellipsis })
659          .constraintSize({ maxWidth: '80%' })
660      }
661      this.content()
662    }
663    .backgroundColor(Color.White)
664    .borderRadius(8)
665    .padding(8)
666    .width('100%')
667  }
668}
669
670```
671
672![CapsuleSegmentButtonV2](figures/CapsuleSegmentButtonV2.gif)
673
674### 示例 3(多选的胶囊型分段按钮)
675
676该示例介绍多选的胶囊型分段按钮的基本用法。
677
678```ts
679import { MultiCapsuleSegmentButtonV2, SegmentButtonV2Items } from '@kit.ArkUI';
680
681@Entry
682@ComponentV2
683struct MultiCapsuleSegmentButtonV2Example {
684  @Local textItems: SegmentButtonV2Items = new SegmentButtonV2Items([
685    { text: '手机' },
686    { text: '平板' },
687    { text: '2in1' },
688    { text: '智能穿戴' },
689  ]);
690  @Local textSelectedIndexes: number[] = [0];
691  @Local imageItems: SegmentButtonV2Items = new SegmentButtonV2Items([
692    { icon: $r('sys.media.ohos_ic_public_device_phone') },
693    { icon: $r('sys.media.ohos_ic_public_device_pad') },
694    { icon: $r('sys.media.ohos_ic_public_device_matebook') },
695    { icon: $r('sys.media.ohos_ic_public_device_watch') },
696  ]);
697  @Local imageSelectedIndexes: number[] = [0];
698  @Local symbolItems: SegmentButtonV2Items = new SegmentButtonV2Items([
699    { symbol: $r('sys.symbol.phone') },
700    { symbol: $r('sys.symbol.pad') },
701    { symbol: $r('sys.symbol.matebook') },
702    { symbol: $r('sys.symbol.watch') },
703  ]);
704  @Local symbolSelectedIndexes: number[] = [0];
705  @Local hybridItems: SegmentButtonV2Items = new SegmentButtonV2Items([
706    { text: '手机', symbol: $r('sys.symbol.phone') },
707    { text: '平板', symbol: $r('sys.symbol.pad') },
708    { text: '2in1', symbol: $r('sys.symbol.matebook') },
709    { text: '智能穿戴', symbol: $r('sys.symbol.watch') },
710  ]);
711  @Local hybridSelectedIndexes: number[] = [0];
712  @Local freeItems: SegmentButtonV2Items = new SegmentButtonV2Items([
713    { text: '年' },
714    { text: '月' },
715    { text: '周' },
716    { text: '日' },
717    { icon: $r('sys.media.ohos_ic_public_search_filled') },
718  ]);
719  @Local freeSelectedIndexes: number[] = [0];
720
721  build() {
722    Scroll() {
723      Column({ space: 12 }) {
724        VCard({ title: '纯文本选项' }) {
725          MultiCapsuleSegmentButtonV2({
726            items: this.textItems,
727            selectedIndexes: this.textSelectedIndexes!!,
728          })
729        }
730
731        VCard({ title: '纯图标选项(Image)' }) {
732          MultiCapsuleSegmentButtonV2({
733            items: this.imageItems,
734            selectedIndexes: this.imageSelectedIndexes!!,
735          })
736        }
737
738        VCard({ title: '纯图标选项(Symbol)' }) {
739          MultiCapsuleSegmentButtonV2({
740            items: this.symbolItems,
741            selectedIndexes: this.symbolSelectedIndexes!!,
742          })
743        }
744
745        VCard({ title: '图文混合选项' }) {
746          MultiCapsuleSegmentButtonV2({
747            items: this.hybridItems,
748            selectedIndexes: this.hybridSelectedIndexes!!,
749          })
750        }
751
752        VCard({ title: '自由选项' }) {
753          MultiCapsuleSegmentButtonV2({
754            items: this.freeItems,
755            selectedIndexes: this.freeSelectedIndexes!!,
756          })
757        }
758      }
759      .constraintSize({ minHeight: '100%' })
760      .justifyContent(FlexAlign.Start)
761      .padding(16)
762    }
763    .backgroundColor('#f1f3f5')
764    .width('100%')
765    .height('100%')
766  }
767}
768
769@Builder
770function Noop() {
771}
772
773@Component
774export struct VCard {
775  @Prop
776  title: ResourceStr;
777  @BuilderParam
778  content: () => void = Noop;
779
780  build() {
781    Column({ space: 8 }) {
782      if (this.title) {
783        Text(this.title)
784          .maxLines(1)
785          .textOverflow({ overflow: TextOverflow.Ellipsis })
786          .constraintSize({ maxWidth: '80%' })
787      }
788      this.content()
789    }
790    .backgroundColor(Color.White)
791    .borderRadius(8)
792    .padding(8)
793    .width('100%')
794  }
795}
796
797```
798
799![MultiCapsuleSegmentButtonV2.gif](figures/MultiCapsuleSegmentButtonV2.gif)
800