跳至主要内容

可为空的 CupertinoThemeData.brightness

摘要

#

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