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