概述

#

CupertinoThemeData.brightness 現在是可為空的。

背景

#

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