概述

#

CupertinoThemeData.brightness 现在可为空。

背景

#

CupertinoThemeData.brightness 现在用于覆盖 Cupertino 组件的 MediaQuery.platformBrightness。在此更改之前,当 CupertinoThemeData.brightness getter 设置为 null 时,它会返回 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