概述

#

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