• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Checkbox
2
3提供多选框组件,通常用于某选项的打开或关闭。
4
5>  **说明:**
6>
7>  API version 11开始,Checkbox默认样式由圆角方形变为圆形。
8>
9>  该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
10
11## 子组件
12
1314
15## 接口
16
17Checkbox(options?: CheckboxOptions)
18
19多选框组件。
20
21**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
22
23**系统能力:** SystemCapability.ArkUI.ArkUI.Full
24
25**参数:**
26
27| 参数名  | 类型                                        | 必填 | 描述               |
28| ------- | ------------------------------------------- | ---- | ------------------ |
29| options | [CheckboxOptions](#checkboxoptions对象说明) | 否   | 配置复选框的参数。 |
30
31## CheckboxOptions对象说明
32
33| 名称  | 类型 | 必填  | 描述 |
34| --------| --------| ------ | -------- |
35| name    | string | 否 | 用于指定多选框名称。 |
36| group   | string | 否 | 用于指定多选框所属群组的名称(即所属CheckboxGroup的名称)。<br/>**说明:** <br/>未配合使用[CheckboxGroup](ts-basic-components-checkboxgroup.md)组件时,此值无用。 |
37
38## 属性
39
40除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
41
42
43| 名称          | 参数类型 | 描述 |
44| ------------- | ------- | -------- |
45| select        | boolean | 设置多选框是否选中。<br/>默认值:false<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。<br />从API version 10开始,该属性支持[$$](../../../quick-start/arkts-two-way-sync.md)双向绑定变量。 |
46| selectedColor | [ResourceColor](ts-types.md#resourcecolor) | 设置多选框选中状态颜色。<br/>默认值:$r('sys.color.ohos_id_color_text_primary_activated')。<br/>异常值按照默认值处理。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
47| unselectedColor<sup>10+</sup> | [ResourceColor](ts-types.md#resourcecolor) | 设置多选框非选中状态边框颜色。<br/>默认值:'#33ffffff'。 |
48| mark<sup>10+</sup> | [MarkStyle](#markstyle10对象说明) | 多选框内部图标样式。 |
49| shape<sup>11+</sup> | [CheckBoxShape](#checkboxshape11枚举类型说明) | 设置CheckBox组件形状, 包括圆形和圆角方形。 <br/>默认值:CheckBoxShape.CIRCLE。|
50
51## 事件
52
53支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
54
55| 名称                                         | 功能描述                                                     |
56| -------------------------------------------- | ------------------------------------------------------------ |
57| onChange(callback: (value: boolean) => void) | 当选中状态发生变化时,触发该回调。<br>- value为true时,表示已选中。<br>- value为false时,表示未选中。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
58
59## MarkStyle<sup>10+</sup>对象说明
60
61| 名称        | 类型                                       | 必填 | 默认值      | 描述                                                         |
62| ----------- | ------------------------------------------ | ---- | ----------- | ------------------------------------------------------------ |
63| strokeColor | [ResourceColor](ts-types.md#resourcecolor) | 否   | Color.White | 内部图标颜色。                                               |
64| size        | [Length](ts-types.md#length)               | 否   | -           | 内部图标大小,单位vp。默认大小与多选框组件宽度设置值一致。<br />不支持百分比形式设置。当设置为非法值时,按照默认值处理。 |
65| strokeWidth | [Length](ts-types.md#length)               | 否   | 2           | 内部图标粗细,单位vp。不支持百分比形式设置。当设置为非法值时,按照默认值处理。 |
66
67## CheckBoxShape<sup>11+</sup>枚举类型说明
68
69| 枚举名称       | 枚举值 | 描述     |
70| -------------- | ------ | -------- |
71| CIRCLE         | 0      | 圆形     |
72| ROUNDED_SQUARE | 1      | 圆角方形 |
73
74## 示例
75
76### 示例1
77
78```ts
79// xxx.ets
80@Entry
81@Component
82struct CheckboxExample {
83  build() {
84    Flex({ justifyContent: FlexAlign.SpaceAround }) {
85      Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
86        .select(true)
87        .selectedColor(0xed6f21)
88        .shape(CheckBoxShape.CIRCLE)
89        .onChange((value: boolean) => {
90          console.info('Checkbox1 change is' + value)
91        })
92      Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
93        .select(false)
94        .selectedColor(0x39a2db)
95        .shape(CheckBoxShape.ROUNDED_SQUARE)
96        .onChange((value: boolean) => {
97          console.info('Checkbox2 change is' + value)
98        })
99    }
100  }
101}
102```
103
104
105![](figures/checkbox.gif)
106
107### 示例2
108
109```ts
110// xxx.ets
111@Entry
112@Component
113struct Index {
114
115  build() {
116    Row() {
117      Column() {
118        Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
119          Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
120            .selectedColor(0x39a2db)
121            .shape(CheckBoxShape.ROUNDED_SQUARE)
122            .onChange((value: boolean) => {
123              console.info('Checkbox1 change is'+ value)
124            })
125            .mark({
126              strokeColor:Color.Black,
127              size: 50,
128              strokeWidth: 5
129            })
130            .unselectedColor(Color.Red)
131            .width(30)
132            .height(30)
133          Text('Checkbox1').fontSize(20)
134        }
135        Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
136          Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
137            .selectedColor(0x39a2db)
138            .shape(CheckBoxShape.ROUNDED_SQUARE)
139            .onChange((value: boolean) => {
140              console.info('Checkbox2 change is' + value)
141            })
142            .width(30)
143            .height(30)
144          Text('Checkbox2').fontSize(20)
145        }
146      }
147      .width('100%')
148    }
149    .height('100%')
150  }
151}
152```
153
154
155![](figures/checkbox2.gif)
156