
Checkbox
Un Checkbox
es un componente que permite a los usuarios seleccionar o deseleccionar una opción.

Para añadir un componente de este tipo hace falta definir:
Un estado booleano (
true
para seleccionado,false
para no seleccionado).Un evento de cambio (
onCheckedChange
), que se dispara cuando el usuario hace clic en elCheckbox
.
Aquí tienes un ejemplo básico:
@Composable
fun BasicCheckbox() {
// Estado del checkbox
var isChecked by remember { mutableStateOf(false) }
// Checkbox con un cambio de estado
Checkbox(
checked = isChecked,
onCheckedChange = { isChecked = it }
)
}
checked
: define si elCheckbox
está marcado.onCheckedChange
: actualiza el estado cada vez que el usuario selecciona o deselecciona elCheckbox
.
Es común querer añadir texto junto al Checkbox
para identificar su propósito. Para ello, vamos a aliniear dentro de un Row
el Checkbox
y un Text
.
@Composable
fun LabeledCheckbox() {
var isChecked by remember { mutableStateOf(false) }
Row(
verticalAlignment = Alignment.CenterVertically
) {
Checkbox(
checked = isChecked,
onCheckedChange = { isChecked = it }
)
Spacer(modifier = Modifier.width(8.dp))
Text(text = if (isChecked) "Checked" else "Unchecked")
}
}
Colores
Puedes cambiar los colores del Checkbox
para adaptarlo al estilo de tu aplicación. Aquí se usa colors
para personalizar los colores en diferentes estados.
@Composable
fun ColoredCheckbox() {
var isChecked by remember { mutableStateOf(false) }
Checkbox(
checked = isChecked,
onCheckedChange = { isChecked = it },
colors = CheckboxDefaults.colors(
checkedColor = Color.Green,
uncheckedColor = Color.Red,
checkmarkColor = Color.White
)
)
}
Estado indeterminado
Un Checkbox
indeterminado es útil en casos donde el estado no es ni seleccionado ni deseleccionado, como en selecciones parciales.
@Composable
fun LabeledCheckbox() {
var state by remember { mutableStateOf(ToggleableState.Indeterminate) }
Row(
modifier = Modifier.padding(5.dp),
verticalAlignment = Alignment.CenterVertically
) {
TriStateCheckbox(
state = state,
onClick = {
state = when (state) {
ToggleableState.On -> ToggleableState.Off
ToggleableState.Off -> ToggleableState.Indeterminate
ToggleableState.Indeterminate -> ToggleableState.On
}
}
)
Text(text = "Indeterminado")
}
}
ToggleableState tiene tres valores: On
, Off
, y Indeterminate
.
Última actualización
¿Te fue útil?