Saltar al contenido principal

Actualizaciones del sistema de temas de Material

`CardTheme`, `DialogTheme` y `TabBarTheme` se han normalizado para seguir la convención de Flutter para temas de componentes en la biblioteca de Material. En `ThemeData`, el tipo de estas propiedades también ha cambiado en consecuencia.

Resumen

#

CardTheme, DialogTheme y TabBarTheme se refactorizaron para cumplir con las convenciones de Flutter para temas de componentes. Se añadieron CardThemeData, DialogThemeData y TabBarThemeData para definir anulaciones para los valores predeterminados de las propiedades visuales de los componentes.

Durante la normalización del tema de las tarjetas (card), el tipo de ThemeData.cardTheme se cambió a Object? para aceptar tanto CardTheme como CardThemeData, con el fin de tener una transición suave para los cambios disruptivos. Se utilizó el mismo enfoque para dialogTheme y tabBarTheme.

Para completar la transición y conformarse plenamente a la convención de ThemeData, el tipo de ThemeData.cardTheme ha cambiado a CardThemeData?; el tipo de ThemeData.dialogTheme ha cambiado a DialogThemeData?; y el tipo de ThemeData.tabBarTheme ha cambiado a TabBarThemeData?.

Guía de migración

#

Anteriormente, el tipo de ThemeData.cardTheme era Object? para aceptar tanto CardTheme como CardThemeData. Ahora que el tipo ha cambiado a CardThemeData?, se requiere una migración si se utiliza ThemeData.cardTheme. De manera similar, los tipos de ThemeData.dialogTheme y ThemeData.tabBarTheme deben migrarse a DialogThemeData y TabBarThemeData, respectivamente.

Código antes de la migración:

dart
final ThemeData theme = ThemeData(
    cardTheme: CardTheme(),
    dialogTheme: DialogTheme(),
    tabBarTheme: TabBarTheme(),
);

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

dart
final ThemeData theme = ThemeData(
    cardTheme: CardThemeData(),
    dialogTheme: DialogThemeData(),
    tabBarTheme: TabBarThemeData(),
);

Timeline

#

Llegó en la versión: 3.31.0-0.0.pre
En la versión estable: 3.32

Referencias

#

Documentación de la API:

PRs relevantes: