如何在颤振中使用ThemeData手动设置暗模式?



如何在颤振中使用ThemeData手动设置暗模式?

我目前正在使用ThemeData来处理我的darkMode事件:

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'App',
themeMode: ThemeMode.system,
theme: MainTheme.light,
darkTheme: MainTheme.dark,
home: HomeScreen(),
debugShowCheckedModeBanner: false,
);
}
}

我想知道,如何在颤振手动打开黑暗模式,当我看到一个特定的小部件?在我制作的每个Widget中,我使用以下代码创建一个变量来检查是否激活了暗模式,以便我可以手动管理颜色:

var brightness = MediaQuery.of(context).platformBrightness;
darkModeOn = brightness == Brightness.dark;

我发现在浅色和深色模式之间切换最简单的方法是使用自适应主题包。https://pub.dev/packages/adaptive_theme

为了应用主题,你需要用AdaptiveTheme包装你的MaterialApp。

之后,你可以使用这段代码来切换明暗模式:AdaptiveTheme.of(context).toggleThemeMode();

另一种在暗模式和亮模式下自定义颜色的方法是读取手机模式,然后将其条件设置为常量。在两种模式中切换颜色。

最新更新