Kari Kähkönen
02/08/2021, 9:10 PMdata class State(
val checked: Boolean,
val enabled: Boolean
)
@Composable
fun CheckboxTest() {
var state by remember { mutableStateOf(State(checked = false, enabled = false)) }
Column(modifier = Modifier.padding(16.dp)) {
OutlinedButton(onClick = { state = state.copy(enabled = true) }) {
Text("Enable")
}
Checkbox(
checked = state.checked,
enabled = state.enabled,
onCheckedChange = { state = state.copy(checked = !state.checked) },
modifier = Modifier.padding(end = 16.dp)
)
}
}
jim
02/08/2021, 9:47 PMclass State() {
var checked: Boolean by mutableStateOf(false)
var enabled: Boolean by mutableStateOf(false)
}
Kari Kähkönen
02/08/2021, 10:03 PMRick Regan
02/09/2021, 5:03 AMcolors = CheckboxDefaults.colors(
checkedColor = Color.Green,
uncheckedColor = Color.Blue,
checkmarkColor = Color.Black,
disabledColor = Color.Red
)
and then click the enable button and then the checkbox, you'll get a black check in a red outlined box.
If you change the line enabled = state.enabled
to enabled = true
(so no need to click enable button) you'll get a black check in a solid green box when you click the checkbox.
I have no idea what that means.Kari Kähkönen
02/09/2021, 6:54 AM@Composable
fun CheckboxTest() {
var checked by remember { mutableStateOf(false) }
var enabled by remember { mutableStateOf(false) }
Column(
modifier = Modifier.padding(16.dp),
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
Button(onClick = { enabled = true }) {
Text("Enable")
}
Button(onClick = { enabled = false }) {
Text("Disable")
}
}
Checkbox(
checked = checked,
enabled = enabled,
onCheckedChange = { checked = !checked },
modifier = Modifier.padding(end = 16.dp)
)
Checkbox(
checked = checked,
enabled = enabled,
onCheckedChange = { checked = !checked },
modifier = Modifier.padding(end = 16.dp),
colors = CheckboxDefaults.colors(
checkedColor = Color.Green,
uncheckedColor = Color.Blue,
checkmarkColor = Color.Black,
disabledColor = Color.Red
)
)
Text(text = "Enabled $enabled, Checked: $checked")
}
}
Here is also a screenshot after pressing enable button and clicking one of the checkboxes (which have the same state so they both should be checked).
I'll file a bug after work later today.Rick Regan
02/09/2021, 12:33 PMKari Kähkönen
02/09/2021, 12:51 PMRick Regan
02/09/2021, 1:03 PMKari Kähkönen
02/09/2021, 4:42 PMAlex Bieliaiev
02/09/2021, 11:41 PM