Comportamiento de Checkbox.fillColor actualizado
El comportamiento mejorado de `Checkbox.fillColor` aplica el color de relleno al fondo cuando el checkbox no está seleccionado.
Resumen
#El Checkbox.fillColor se aplica ahora al fondo del checkbox cuando
el checkbox no está seleccionado.
Contexto
#Anteriormente, el Checkbox.fillColor se aplicaba al borde del checkbox
cuando el checkbox no estaba seleccionado y su fondo era transparente.
Con este cambio, el Checkbox.fillColor se aplica al fondo del checkbox
y el borde utiliza el color de Checkbox.side cuando el checkbox
no está seleccionado.
Descripción del cambio
#El Checkbox.fillColor se aplica ahora al fondo del checkbox cuando
el checkbox no está seleccionado, en lugar de utilizarse como color del borde.
Guía de migración
#El comportamiento actualizado de Checkbox.fillColor aplica el color de relleno al
fondo del checkbox en el State no seleccionado. Para obtener el comportamiento anterior,
establece Checkbox.fillColor en Colors.transparent en el State no seleccionado y
establece Checkbox.side en el color deseado.
Si utilizas la propiedad Checkbox.fillColor para personalizar el checkbox.
Código antes de la migración:
Checkbox(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.red;
}
return null;
}),
value: _checked,
onChanged: _enabled
? (bool? value) {
setState(() {
_checked = value!;
});
}
: null,
),
Código después de la migración:
Checkbox(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.transparent;
}
return null;
}),
side: const BorderSide(color: Colors.red, width: 2),
value: _checked,
onChanged: _enabled
? (bool? value) {
setState(() {
_checked = value!;
});
}
: null,
),
Si utilizas la propiedad CheckboxThemeData.fillColor para personalizar el checkbox.
Código antes de la migración:
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.red;
}
return null;
}),
),
Código después de la migración:
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.transparent;
}
return null;
}),
side: const BorderSide(color: Colors.red, width: 2),
),
Timeline
#Llegó en la versión: 3.10.0-17.0.pre
En la versión estable: 3.13.0
Referencias
#Documentación de la API:
Issues relevantes:
PRs relevantes:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.