跳至主要內容

可為空的 CupertinoThemeData.brightness

摘要

#

CupertinoThemeData.brightness 現在可為空值 (nullable)。

背景

#

CupertinoThemeData.brightness 現在用於覆寫 Cupertino 小工具的 MediaQuery.platformBrightness。在此變更之前,當 CupertinoThemeData.brightness 設定為 null 時,其 getter 會回傳 Brightness.light

變更說明

#

先前,CupertinoThemeData.brightness 是以 getter 實作。

dart
Brightness get brightness => _brightness ?? Brightness.light;
final Brightness _brightness;

現在它是一個儲存的屬性。

dart
final Brightness brightness;

遷移指南

#

通常,CupertinoThemeData.brightness 在 Flutter 框架之外很少有用。若要取得 Cupertino 小工具的亮度,現在請改用 CupertinoTheme.brightnessOf

透過此變更,現在可以在 CupertinoThemeData 子類別中覆寫 CupertinoThemeData.brightness,以變更亮度覆寫。例如:

dart
class AlwaysDarkCupertinoThemeData extends CupertinoThemeData {
  Brightness brightness => Brightness.dark;
}

CupertinoTheme 使用上述 CupertinoThemeData 時,會為所有受此 CupertinoTheme 影響的 Cupertino 後代啟用深色模式。

時程

#

已納入版本:1.16.3
在穩定版本中:1.17

參考資料

#

設計文件

API 文件

相關議題

相關 PR