Saltar al contenido principal

Depreciación del parámetro color en el tema de AppBar

El parámetro color en AppBarTheme y AppBarThemeData se ha puesto en desuso en favor de backgroundColor para una mejor consistencia de la API.

Resumen

#

El parámetro color en los constructores de AppBarTheme y AppBarThemeData y sus métodos copyWith se ha puesto en desuso. Utiliza backgroundColor en su lugar. Este cambio afecta a cómo se configuran los temas de AppBar y podría causar advertencias de depreciación en el código existente.

Contexto

#

El sistema de temas de AppBar tenía dos parámetros que controlaban la misma propiedad: color y backgroundColor. Esta duplicidad generaba confusión e inconsistencia en la API. Para mejorar la claridad y consistencia, el parámetro color se ha puesto en desuso en favor de backgroundColor.

La depreciación afecta a las siguientes clases y métodos:

  • Constructor de AppBarTheme
  • Método AppBarTheme.copyWith
  • Constructor de AppBarThemeData
  • Método AppBarThemeData.copyWith

Al utilizar el parámetro color en desuso, verás advertencias como:

txt
'color' is deprecated and shouldn't be used. Use backgroundColor instead.
This feature was deprecated after v3.33.0-0.2.pre.

Las clases también incluyen comprobaciones de aserción para evitar el uso de ambos parámetros simultáneamente:

txt
The color and backgroundColor parameters mean the same thing. Only specify one.

Guía de migración

#

Reemplaza todos los usos del parámetro color por backgroundColor en los constructores de AppBarTheme y AppBarThemeData y sus métodos copyWith.

Código antes de la migración:

dart
// AppBarTheme constructor
AppBarTheme(
  color: Colors.blue,
  elevation: 4.0,
)

// AppBarTheme copyWith
theme.copyWith(
  color: Colors.red,
  elevation: 2.0,
)

// AppBarThemeData constructor
AppBarThemeData(
  color: Colors.green,
  elevation: 4.0,
)

// AppBarThemeData copyWith
themeData.copyWith(
  color: Colors.purple,
  elevation: 2.0,
)

Código después de la migración:

dart
// AppBarTheme constructor
AppBarTheme(
  backgroundColor: Colors.blue,
  elevation: 4.0,
)

// AppBarTheme copyWith
theme.copyWith(
  backgroundColor: Colors.red,
  elevation: 2.0,
)

// AppBarThemeData constructor
AppBarThemeData(
  backgroundColor: Colors.green,
  elevation: 4.0,
)

// AppBarThemeData copyWith
themeData.copyWith(
  backgroundColor: Colors.purple,
  elevation: 2.0,
)

Timeline

#

Llegó en la versión: 3.33.0-0.2.pre
En la versión estable: 3.35.4

Referencias

#

Documentación de la API:

PRs relevantes: