我正在尝试使用 基于现有亮色主题创建暗色主题lightTheme.copyWith(brightness: Brightness.dark)
。但是,该应用似乎忽略了暗色主题的亮度。
我的 main.dart 使用以下代码:
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: Themes.lightTheme,
darkTheme: Themes.darkTheme,
themeMode: ThemeMode.dark,
...
);
}
其中Themes.lightTheme
和Themes.darkTheme
定义如下:
class Themes {
static ThemeData get lightTheme => ThemeData(
colorSchemeSeed: Colors.green,
);
static ThemeData get darkTheme => lightTheme.copyWith(
brightness: Brightness.dark,
);
}
调试器显示深色主题包含brightness: Brightness.dark
。
但是,当我按如下方式定义黑暗主题时,一切正常copyWith
:
class Themes {
static ThemeData get lightTheme => ThemeData(
colorSchemeSeed: Colors.green,
);
static ThemeData get darkTheme => ThemeData(
colorSchemeSeed: Colors.green,
brightness: Brightness.dark,
);
}
有人能指出我对 Dart/Flutter 知识的盲点并解释一下发生了什么吗?
环境:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.29.3, on Microsoft Windows [Version 10.0.22631.5262], locale xx-XX)
[✓] Windows Version (11 Home 64-bit, 23H2, 2009)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.1)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.13.6)
[✓] Android Studio (version 2024.3)
[✓] VS Code (version 1.99.3)
[✓] Connected device (3 available)
[✓] Network resources