概述

#

CardThemeDialogThemeTabBarTheme 已重构,以符合 Flutter 的组件主题约定。已添加 CardThemeDataDialogThemeDataTabBarThemeData 来定义组件视觉属性默认值的覆盖。

在卡片主题规范化期间,ThemeData.cardTheme 的类型更改为 Object?,以同时接受 CardThemeCardThemeData,从而实现重大更改的平滑过渡。同样的方法也用于 dialogThemetabBarTheme

为了完成过渡并完全符合 ThemeData 约定,ThemeData.cardTheme 的类型已更改为 CardThemeData?ThemeData.dialogTheme 的类型已更改为 DialogThemeData?ThemeData.tabBarTheme 的类型已更改为 TabBarThemeData?

迁移指南

#

以前,ThemeData.cardTheme 的类型是 Object?,以同时接受 CardThemeCardThemeData。现在类型已更改为 CardThemeData?,如果使用 ThemeData.cardTheme,则需要进行迁移。同样,ThemeData.dialogThemeThemeData.tabBarTheme 的类型也应分别迁移到 DialogThemeDataTabBarThemeData

迁移前的代码

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

迁移后的代码

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

时间线

#

已于版本:3.31.0-0.0.pre 登录
稳定版本:3.32

参考资料

#

API 文档

相关 PR