Skip to main content

Material 主題系統更新

`CardTheme`、`DialogTheme` 和 `TabBarTheme` 已經標準化,以遵循 Flutter 的 Material 函式庫中元件主題(component themes)的慣例。在 `ThemeData` 中,這些屬性的型別也已相應變更。

摘要

#

CardThemeDialogThemeTabBarTheme 已經重構,以符合 Flutter 元件主題(component themes)的慣例。CardThemeDataDialogThemeDataTabBarThemeData 已新增,用於定義元件視覺屬性的預設值覆寫。

在卡片主題(card theme)標準化過程中,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: