Guía de migración para CupertinoDynamicColor de amplia gama (wide gamut)
Abordar las deprecaciones previamente omitidas en CupertinoDynamicColor para alinearse con la API de Color de amplia gama.
Resumen
#Ciertas propiedades y métodos en CupertinoDynamicColor
fueron deprecados
para alinearse con la clase Color
debido al soporte para espacios de color de amplia gama (wide gamut)
añadido en Flutter 3.27.
Contexto
#La clase Color se actualizó para admitir espacios de color de amplia gama,
pero algunas de las deprecaciones correspondientes no se aplicaron inicialmente a
CupertinoDynamicColor debido a su implementación en lugar de
a la extensión de Color.
Descripción del cambio
#- El campo
CupertinoDynamicColor.redestá deprecado en favor deCupertinoDynamicColor.r. - El campo
CupertinoDynamicColor.greenestá deprecado en favor deCupertinoDynamicColor.g. - El campo
CupertinoDynamicColor.blueestá deprecado en favor deCupertinoDynamicColor.b. - El campo
CupertinoDynamicColor.opacityestá deprecado en favor deCupertinoDynamicColor.a. - El método
CupertinoDynamicColor.withOpacity()está deprecado en favor deCupertinoDynamicColor.withValues().
Guía de migración
#Acceder a los componentes de color
#Si tu aplicación accede a un componente de color individual, considera aprovechar los componentes de punto flotante. A corto plazo, puedes escalar los componentes mismos.
int _floatToInt8(double x) {
return (x * 255.0).round().clamp(0, 255);
}
const CupertinoDynamicColor color = CupertinoColors.systemBlue;
final intRed = _floatToInt8(color.r);
final intGreen = _floatToInt8(color.g);
final intBlue = _floatToInt8(color.b);
Opacity
#Antes de Flutter 3.27, Color tenía el concepto de "opacidad", que
aparecía en los métodos opacity y withOpacity().
Desde Flutter 3.27, el canal alfa se almacena como un valor de punto flotante.
El uso de .a y .withValues() proporcionará la expresión completa de
un valor de punto flotante y no se cuantizará (restringirá a un rango limitado).
Esto significa que "alfa" expresa la intención de "opacidad" de forma más correcta.
Migrar opacity
#
// Before: Access the alpha channel as a (converted) floating-point value.
final x = color.opacity;
// After: Access the alpha channel directly.
final x = color.a;
Migrar withOpacity
#
// Before: Create a new color with the specified opacity.
final x = color.withOpacity(0.5);
// After: Create a new color with the specified alpha channel value,
// accounting for the current or specified color space.
final x = color.withValues(alpha: 0.5);
Timeline
#Introducido en la versión: 3.36.0-0.1.pre
Versión estable: 3.38
Referencias
#Guías relevantes:
Issues relevantes:
- Implementar soporte para color de amplia gama en el Framework
- CupertinoDynamicColor carece de avisos de deprecación
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.