1e41f4b71Sopenharmony_ci# CheckboxGroup
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **CheckboxGroup** component is used to select or deselect all check boxes in a group.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **NOTE**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci>  This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## Child Components
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciNot supported
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## APIs
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciCheckboxGroup(options?: CheckboxGroupOptions)
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciCreates a check box group so that you can select or deselect all check boxes in the group at once. Check boxes and check box groups that share the same group name belong to the same group.
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciWhen this API is used with components that come with a pre-loading mechanism, such as the **List** component, those check boxes that have not been created yet need to be manually selected or unselected.
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci**Parameters** 
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci| Name | Type                                                 | Mandatory | Description                |
30e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------------- | ---- | -------------------- |
31e41f4b71Sopenharmony_ci| options | [CheckboxGroupOptions](#checkboxgroupoptions)  | No  | Check box group parameters. |
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci## CheckboxGroupOptions
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
40e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
41e41f4b71Sopenharmony_ci| group | string | No | Group name.<br>**NOTE**<br>If there are multiple check box groups with the same group name, only the first check box group takes effect. |
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci## Attributes
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ciIn addition to the [universal attributes](ts-universal-attributes-size.md), the following attributes are supported.
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci### selectAll
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ciselectAll(value: boolean)
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ciSets whether to select all. If the **select** attribute is set for a [Checkbox](ts-basic-components-checkbox.md) component in the same group, the setting of the **Checkbox** has a higher priority.
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ciSince API version 10, this attribute supports two-way binding through [$$](../../../quick-start/arkts-two-way-sync.md).
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci**Parameters** 
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci| Name | Type   | Mandatory | Description                        |
64e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------- |
65e41f4b71Sopenharmony_ci| value  | boolean | Yes  | Whether to select all.<br>Default value: **false** |
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci### selectedColor
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ciselectedColor(value: ResourceColor)
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ciSets the color of the selected check box.
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**Parameters** 
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| Name | Type                                      | Mandatory | Description                                                        |
82e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ------------------------------------------------------------ |
83e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | Yes  | Color of the selected check box.<br>Default value: **$r('sys.color.ohos_id_color_text_primary_activated')**<br>An invalid value is handled as the default value. |
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci### unselectedColor<sup>10+</sup>
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ciunselectedColor(value: ResourceColor)
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ciSets the border color of the check box when it is not selected.
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci**Parameters** 
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci| Name | Type                                      | Mandatory | Description                |
100e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | -------------------- |
101e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | Yes  | Border color of the check box when it is not selected.<br>Default value: **'#33ffffff'** |
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci### mark<sup>10+</sup>
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_cimark(value: MarkStyle)
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ciSets the mark style of the check box.
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci**Parameters** 
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci| Name | Type                             | Mandatory | Description                |
118e41f4b71Sopenharmony_ci| ------ | --------------------------------- | ---- | -------------------- |
119e41f4b71Sopenharmony_ci| value  | [MarkStyle](ts-types.md#markstyle10) | Yes  | Mark style of the check box. |
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci### checkboxShape<sup>12</sup>
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_cicheckboxShape(value: CheckBoxShape)
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ciSets the shape of the check box group.
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci**Widget capability**: This API can be used in ArkTS widgets since API version 12.
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci**Parameters** 
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci| Name | Type                                               | Mandatory | Description              |
136e41f4b71Sopenharmony_ci| ------ | --------------------------------------------------- | ---- | ------------------ |
137e41f4b71Sopenharmony_ci| value  | [CheckBoxShape](ts-basic-components-checkbox.md#checkboxshape11) | Yes  | Shape of the check box group.<br>Default value: **CheckBoxShape.CIRCLE**<br>**NOTE**<br>The shape of the check box group component follows the settings configured.<br>All check boxes within the check box group that do not have an individual shape set will conform to the shape of the check box group.<br>If a check box within the check box group has an individual shape set, that shape takes precedence over the check box group's shape.
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci## Events
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ciIn addition to the [universal events](ts-universal-events-click.md), the following events are supported.
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci### onChange
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_cionChange(callback: (event: CheckboxGroupResult) => void )
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ciInvoked when the selected status of the check box group or any check box wherein changes.
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**Parameters** 
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci| Name | Type                                               | Mandatory | Description              |
158e41f4b71Sopenharmony_ci| ------ | --------------------------------------------------- | ---- | ------------------ |
159e41f4b71Sopenharmony_ci| event  | [CheckboxGroupResult](#checkboxgroupresult) | Yes  | Information about the check box group. |
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci## CheckboxGroupResult
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci| Name    | Type  | Description     |
168e41f4b71Sopenharmony_ci| ------ | ------ | ------- |
169e41f4b71Sopenharmony_ci| name   | Array&lt;string&gt; | Names of all the selected check boxes in the group. |
170e41f4b71Sopenharmony_ci| status | [SelectStatus](#selectstatus)  | Selected status. |
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci## SelectStatus
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci**Widget capability**: Since API version 9, this feature is supported in ArkTS widgets.
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci| Name | Description |
179e41f4b71Sopenharmony_ci| ----- | -------------------- |
180e41f4b71Sopenharmony_ci| All   | All check boxes in the group are selected. |
181e41f4b71Sopenharmony_ci| Part  | Some check boxes in the group are selected. |
182e41f4b71Sopenharmony_ci| None  | None of the check boxes in the group are selected. |
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci## Example
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci### Example 1
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci```ts
189e41f4b71Sopenharmony_ci// xxx.ets
190e41f4b71Sopenharmony_ci@Entry
191e41f4b71Sopenharmony_ci@Component
192e41f4b71Sopenharmony_cistruct CheckboxExample {
193e41f4b71Sopenharmony_ci  build() {
194e41f4b71Sopenharmony_ci    Scroll() {
195e41f4b71Sopenharmony_ci      Column() {
196e41f4b71Sopenharmony_ci        // Select All button
197e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
198e41f4b71Sopenharmony_ci          CheckboxGroup({ group: 'checkboxGroup' })
199e41f4b71Sopenharmony_ci            .checkboxShape(CheckBoxShape.ROUNDED_SQUARE)
200e41f4b71Sopenharmony_ci            .selectedColor('#007DFF')
201e41f4b71Sopenharmony_ci            .onChange((itemName: CheckboxGroupResult) => {
202e41f4b71Sopenharmony_ci              console.info("checkbox group content" + JSON.stringify(itemName))
203e41f4b71Sopenharmony_ci            })
204e41f4b71Sopenharmony_ci          Text('Select All').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
205e41f4b71Sopenharmony_ci        }
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci        // Option 1
208e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
209e41f4b71Sopenharmony_ci          Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
210e41f4b71Sopenharmony_ci            .selectedColor('#007DFF')
211e41f4b71Sopenharmony_ci            .shape(CheckBoxShape.ROUNDED_SQUARE)
212e41f4b71Sopenharmony_ci            .onChange((value: boolean) => {
213e41f4b71Sopenharmony_ci              console.info('Checkbox1 change is' + value)
214e41f4b71Sopenharmony_ci            })
215e41f4b71Sopenharmony_ci          Text('Checkbox1').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
216e41f4b71Sopenharmony_ci        }.margin({ left: 36 })
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci        // Option 2
219e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
220e41f4b71Sopenharmony_ci          Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
221e41f4b71Sopenharmony_ci            .selectedColor('#007DFF')
222e41f4b71Sopenharmony_ci            .shape(CheckBoxShape.ROUNDED_SQUARE)
223e41f4b71Sopenharmony_ci            .onChange((value: boolean) => {
224e41f4b71Sopenharmony_ci              console.info('Checkbox2 change is' + value)
225e41f4b71Sopenharmony_ci            })
226e41f4b71Sopenharmony_ci          Text('Checkbox2').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
227e41f4b71Sopenharmony_ci        }.margin({ left: 36 })
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci        // Option 3
230e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
231e41f4b71Sopenharmony_ci          Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
232e41f4b71Sopenharmony_ci            .selectedColor('#007DFF')
233e41f4b71Sopenharmony_ci            .shape(CheckBoxShape.ROUNDED_SQUARE)
234e41f4b71Sopenharmony_ci            .onChange((value: boolean) => {
235e41f4b71Sopenharmony_ci              console.info('Checkbox3 change is' + value)
236e41f4b71Sopenharmony_ci            })
237e41f4b71Sopenharmony_ci          Text('Checkbox3').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
238e41f4b71Sopenharmony_ci        }.margin({ left: 36 })
239e41f4b71Sopenharmony_ci      }
240e41f4b71Sopenharmony_ci    }
241e41f4b71Sopenharmony_ci  }
242e41f4b71Sopenharmony_ci}
243e41f4b71Sopenharmony_ci```
244e41f4b71Sopenharmony_ci![checkboxGroup](figures/checkboxGroup.gif)
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci### Example 2
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci```ts
249e41f4b71Sopenharmony_ci// xxx.ets
250e41f4b71Sopenharmony_ci@Entry
251e41f4b71Sopenharmony_ci@Component
252e41f4b71Sopenharmony_cistruct Index {
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci  build() {
255e41f4b71Sopenharmony_ci    Row() {
256e41f4b71Sopenharmony_ci      Column() {
257e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
258e41f4b71Sopenharmony_ci          CheckboxGroup({ group: 'checkboxGroup' })
259e41f4b71Sopenharmony_ci            .checkboxShape(CheckBoxShape.ROUNDED_SQUARE)
260e41f4b71Sopenharmony_ci            .selectedColor(Color.Orange)
261e41f4b71Sopenharmony_ci            .onChange((itemName: CheckboxGroupResult) => {
262e41f4b71Sopenharmony_ci              console.info("checkbox group content" + JSON.stringify(itemName))
263e41f4b71Sopenharmony_ci            })
264e41f4b71Sopenharmony_ci            .mark({
265e41f4b71Sopenharmony_ci              strokeColor:Color.Black,
266e41f4b71Sopenharmony_ci              size: 40,
267e41f4b71Sopenharmony_ci              strokeWidth: 5
268e41f4b71Sopenharmony_ci            })
269e41f4b71Sopenharmony_ci            .unselectedColor(Color.Red)
270e41f4b71Sopenharmony_ci            .width(30)
271e41f4b71Sopenharmony_ci            .height(30)
272e41f4b71Sopenharmony_ci          Text('Select All').fontSize(20)
273e41f4b71Sopenharmony_ci        }.margin({right:15})
274e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
275e41f4b71Sopenharmony_ci          Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
276e41f4b71Sopenharmony_ci            .selectedColor(0x39a2db)
277e41f4b71Sopenharmony_ci            .shape(CheckBoxShape.ROUNDED_SQUARE)
278e41f4b71Sopenharmony_ci            .onChange((value: boolean) => {
279e41f4b71Sopenharmony_ci              console.info('Checkbox1 change is'+ value)
280e41f4b71Sopenharmony_ci            })
281e41f4b71Sopenharmony_ci            .mark({
282e41f4b71Sopenharmony_ci              strokeColor:Color.Black,
283e41f4b71Sopenharmony_ci              size: 50,
284e41f4b71Sopenharmony_ci              strokeWidth: 5
285e41f4b71Sopenharmony_ci            })
286e41f4b71Sopenharmony_ci            .unselectedColor(Color.Red)
287e41f4b71Sopenharmony_ci            .width(30)
288e41f4b71Sopenharmony_ci            .height(30)
289e41f4b71Sopenharmony_ci          Text('Checkbox1').fontSize(20)
290e41f4b71Sopenharmony_ci        }
291e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
292e41f4b71Sopenharmony_ci          Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
293e41f4b71Sopenharmony_ci            .selectedColor(0x39a2db)
294e41f4b71Sopenharmony_ci            .shape(CheckBoxShape.ROUNDED_SQUARE)
295e41f4b71Sopenharmony_ci            .onChange((value: boolean) => {
296e41f4b71Sopenharmony_ci              console.info('Checkbox2 change is' + value)
297e41f4b71Sopenharmony_ci            })
298e41f4b71Sopenharmony_ci            .width(30)
299e41f4b71Sopenharmony_ci            .height(30)
300e41f4b71Sopenharmony_ci          Text('Checkbox2').fontSize(20)
301e41f4b71Sopenharmony_ci        }
302e41f4b71Sopenharmony_ci        Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
303e41f4b71Sopenharmony_ci          Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
304e41f4b71Sopenharmony_ci            .selectedColor(0x39a2db)
305e41f4b71Sopenharmony_ci            .shape(CheckBoxShape.ROUNDED_SQUARE)
306e41f4b71Sopenharmony_ci            .onChange((value: boolean) => {
307e41f4b71Sopenharmony_ci              console.info('Checkbox3 change is' + value)
308e41f4b71Sopenharmony_ci            })
309e41f4b71Sopenharmony_ci            .width(30)
310e41f4b71Sopenharmony_ci            .height(30)
311e41f4b71Sopenharmony_ci          Text('Checkbox3').fontSize(20)
312e41f4b71Sopenharmony_ci        }
313e41f4b71Sopenharmony_ci      }
314e41f4b71Sopenharmony_ci      .width('100%')
315e41f4b71Sopenharmony_ci    }
316e41f4b71Sopenharmony_ci    .height('100%')
317e41f4b71Sopenharmony_ci  }
318e41f4b71Sopenharmony_ci}
319e41f4b71Sopenharmony_ci```
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci![checkboxGroup](figures/checkboxGroup2.gif)
322