Material 主题系统更新
概述
#CardTheme、DialogTheme 和 TabBarTheme 已重构,以符合 Flutter 的组件主题约定。已添加 CardThemeData、DialogThemeData 和 TabBarThemeData 来定义组件视觉属性默认值的覆盖。
在卡片主题规范化期间,ThemeData.cardTheme 的类型更改为 Object?,以同时接受 CardTheme 和 CardThemeData,从而实现重大更改的平滑过渡。同样的方法也用于 dialogTheme 和 tabBarTheme。
为了完成过渡并完全符合 ThemeData 约定,ThemeData.cardTheme 的类型已更改为 CardThemeData?;ThemeData.dialogTheme 的类型已更改为 DialogThemeData?;ThemeData.tabBarTheme 的类型已更改为 TabBarThemeData?。
迁移指南
#以前,ThemeData.cardTheme 的类型是 Object?,以同时接受 CardTheme 和 CardThemeData。现在类型已更改为 CardThemeData?,如果使用 ThemeData.cardTheme,则需要进行迁移。同样,ThemeData.dialogTheme 和 ThemeData.tabBarTheme 的类型也应分别迁移到 DialogThemeData 和 TabBarThemeData。
迁移前的代码
final ThemeData theme = ThemeData(
cardTheme: CardTheme(),
dialogTheme: DialogTheme(),
tabBarTheme: TabBarTheme(),
);迁移后的代码
final ThemeData theme = ThemeData(
cardTheme: CardThemeData(),
dialogTheme: DialogThemeData(),
tabBarTheme: TabBarThemeData(),
);时间线
#已于版本:3.31.0-0.0.pre 登录
稳定版本:3.32
参考资料
#API 文档
相关 PR