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
T
The type of the key used to uniquely identify each checkbox item.
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
}