Component theme normalization
Summary
#CardTheme, DialogTheme and TabBarTheme were refactored to conform to Flutter's conventions for component themes. CardThemeData, DialogThemeData, and TabBarThemeData were added to define overrides for the defaults of the component visual properties. Releases of Flutter continue to normalize component themes like these for a more consistent theming experience in the material library.
Migration guide
#In ThemeData:
- The type of the
cardThemeproperty has been changed fromCardThemetoCardThemeData. - The type of the
dialogThemeproperty has been changed from theDialogThemetoDialogThemeData. - The type of
tabBarThemeproperty has been changed fromTabBarThemetoTabBarThemeData.
The return type of the component theme xTheme.of() methods and Theme.of().xTheme have also changed to xThemeData accordingly.
Code before migration:
final CardTheme cardTheme = Theme.of(context).cardTheme;
final CardTheme cardTheme = CardTheme.of(context);
final DialogTheme dialogTheme = Theme.of(context).dialogTheme;
final DialogTheme dialogTheme = DialogTheme.of(context);
final TabBarTheme tabBarTheme = Theme.of(context).tabBarTheme;
final TabBarTheme tabBarTheme = TabBarTheme.of(context);Code after migration:
final CardThemeData cardTheme = Theme.of(context).cardTheme;
final CardThemeData cardTheme = CardTheme.of(context);
final DialogThemeData dialogTheme = Theme.of(context).dialogTheme;
final DialogThemeData dialogTheme = DialogTheme.of(context);
final TabBarThemeData tabBarTheme = Theme.of(context).tabBarTheme;
final TabBarThemeData tabBarTheme = TabBarTheme.of(context);Timeline
#Landed in version: 3.27.0-0.0.pre
Stable release: 3.27
References
#API documentation:
Relevant PRs:
Unless stated otherwise, the documentation on this site reflects the latest stable version of Flutter. Page last updated on 2024-12-16. View source or report an issue.