概述

#

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