CheckboxGroup

fun <T> CheckboxGroup(items: List<CheckboxGroupItem<T>>, modifier: Modifier = Modifier, groupName: String? = null, variant: CheckboxVariant = CheckboxVariant.Emphasised, onItemChecked: (index: Int, item: CheckboxGroupItem<T>, checked: Boolean) -> Unit)(source)

Checkbox Group component allows Checkboxes to be combined together with a Text inside a Column to achieve group-like behaviour.

Parameters

items

A list of CheckboxGroupItem items to be displayed in the same selectable group.

modifier

Modifier to be applied to the layout of the checkbox

groupName

An informative an descriptive name to be displayed above the checkboxes.

variant

CheckboxVariant defines the button style from Skapa Checkbox Variants. The default value is CheckboxVariant.Subtle.

onItemChecked

callback to be invoked when a Checkbox is selected.

See also

Samples

import android.content.res.Configuration
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.*
import androidx.compose.runtime.*
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.state.ToggleableState
import androidx.compose.ui.text.LinkAnnotation
import androidx.compose.ui.text.TextLinkStyles
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.tooling.preview.Preview
import net.ikea.skapa.foundation.*
import net.ikea.skapa.ui.components.Checkbox
import net.ikea.skapa.ui.components.CheckboxGroup
import net.ikea.skapa.ui.components.CheckboxGroupItem
import net.ikea.skapa.ui.components.CheckboxVariant
import net.ikea.skapa.ui.components.HelperText
import net.ikea.skapa.ui.components.HelperTextState
import net.ikea.skapa.ui.components.HyperlinkColor
import net.ikea.skapa.ui.components.TriStateCheckbox
import net.ikea.skapa.ui.components.hyperlinkStyle

fun main() { 
   //sampleStart 
   val items = remember {
    mutableStateListOf(
        CheckboxGroupItem(key = 1, label = "Option 1", checked = true),
        CheckboxGroupItem(key = 2, label = "Option 2"),
        CheckboxGroupItem(key = 3, label = "Option 3", enabled = false),
        CheckboxGroupItem(key = 4, label = "Option 4", checked = true)
    )
}

SkapaTheme2(isSystemInDarkTheme()) {
    Column {
        CheckboxGroup(
            groupName = "Checkbox group",
            modifier = Modifier.fillMaxWidth(),
            items = items
        ) { index, item, checked ->
            items[index] = item.copy(checked = checked)
        }
        HelperText(label = "Error message", state = HelperTextState.Error)
        Spacer(modifier = Modifier.height(SkapaSpacing.space100))
        CheckboxGroup(
            groupName = "Checkbox group",
            modifier = Modifier.fillMaxWidth(),
            items = items
        ) { index, item, checked ->
            items[index] = item.copy(checked = checked)
        }
        HelperText(label = "Message", state = HelperTextState.Regular)
    }
} 
   //sampleEnd
}