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