Estou tentando criar um tema escuro com base em um tema claro existente usando lightTheme.copyWith(brightness: Brightness.dark)
. No entanto, o aplicativo parece ignorar o brilho do tema escuro.
Meu main.dart usa o seguinte código:
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: Themes.lightTheme,
darkTheme: Themes.darkTheme,
themeMode: ThemeMode.dark,
...
);
}
onde Themes.lightTheme
e Themes.darkTheme
são definidos da seguinte forma:
class Themes {
static ThemeData get lightTheme => ThemeData(
colorSchemeSeed: Colors.green,
);
static ThemeData get darkTheme => lightTheme.copyWith(
brightness: Brightness.dark,
);
}
O depurador mostra que o tema escuro contém brightness: Brightness.dark
.
Entretanto, tudo funciona bem quando defino o tema escuro da seguinte forma, sem copyWith
:
class Themes {
static ThemeData get lightTheme => ThemeData(
colorSchemeSeed: Colors.green,
);
static ThemeData get darkTheme => ThemeData(
colorSchemeSeed: Colors.green,
brightness: Brightness.dark,
);
}
Alguém poderia me apontar meu ponto cego de conhecimento sobre Dart/Flutter e explicar o que acontece?
Ambiente:
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