我正在工作的应用程序,包含两种模式,黑暗和光明的主题,我用扩展来检查他们之间显示不幸。
检查主题模式的扩展
import 'package:flutter/material.dart';
extension DarkMode on BuildContext {
bool get isDarkMode {
final brightness = MediaQuery.of(this).platformBrightness;
return brightness == Brightness.dark;
}
}
我还有一个单独的类,包含黑暗主题和光明主题
应用程序主题类
class AppTheme {
static final lightTheme = ThemeData(
// My light theme
);
static final darkTheme = ThemeData(
// My dark theme
);
}
我在材料应用程序中输入了这些代码
MaterialApp(
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
themeMode: ThemeMode.system,
// ...
),
现在,当您从电话系统更改mod时,事情会正常工作,主题会完全更改,如下所示:
problem
现在是当你选择主题,或者更确切地说,当你把光主题,主题不能正常工作.我把一个图像:
一切都应该改变到一个轻的主题,在以前的视频,但它没有发生
MaterialApp(
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
//themeMode: ThemeMode.system,
themeMode: ThemeMode.light,
// ...
),
我想知道什么是错的,我如何才能解决这个问题,使一切正常工作时,切换每个主题。
1条答案
按热度按时间57hvy0tb1#
尝试在
DarkMode
扩展中检查Theme.of(context).brightness
而不是MediaQuery.of(this).platformBrightness