所以我在这里尝试获取当前主题,无论是浅色还是深色。所以我可以相应地改变小部件颜色..但是,它不起作用,我使用 if 语句来知道它何时是深色模式..但它总是 False ..这是代码..顺便说一句,它在深色和浅色主题之间切换。 ..但是当我尝试获取当前主题..即使主题更改为黑暗.. if 语句总是显示错误...
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
bool darkModeOn = MediaQuery.of(context).platformBrightness == Brightness.dark;
Color containerColor;
if (darkModeOn == true) {
containerColor = Colors.blueGrey;
print("----------------");
print("dark mode ON");
print("----------------");
} else {
containerColor = Colors.deepPurple;
print("LIGHT mode ON");
}
return Scaffold(
floatingActionButton: FloatingActionButton.extended(
onPressed: () {
//----switch theme---
currentTheme.switchTheme();
},
label: Text(
"Switch theme",
style: TextStyle(
),
),
icon: …Run Code Online (Sandbox Code Playgroud) 我正在建立一个系统,当用户将系统主题更改为暗模式时,它会更改主题,并且使用 Flutter,它运行良好!但是,当用户更改系统主题时,系统导航和状态栏不会改变它们的颜色。我在 build 方法内的主页上运行了代码,但似乎没有这样做。这是主页构建方法中的代码:
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
Brightness sysBrightness = MediaQuery.of(context).platformBrightness;
if (sysBrightness == Brightness.dark)
Themes.setDarkSystemColors();
else
Themes.setLightSystemColors();
return Scaffold(
appBar: CustomAppBar(title: "Home"),
drawer: CustomDrawer(),
body: SizedBox(),
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是主应用程序中带有theme:和的代码darkTheme::
return MaterialApp(
initialRoute: '/',
routes: routes,
navigatorObservers: [_routeObserver],
theme: Themes.lightTheme,
darkTheme: Themes.darkTheme,
debugShowCheckedModeBanner: false,
title: 'School Life',
);
Run Code Online (Sandbox Code Playgroud) 我正在编写适用于Android和iOS的Flutter应用,该应用将根据iOS的暗模式状态更改其样式/主题。
目前在Flutter中是否有类似MediaQuery.isDarkModeEnabled的东西?
这里有一个GitHub问题开放,但是Flutter团队必须解决很多问题,所以我看不到这个实现得太早。
我可以从iOS特定的代码通道使用'traitCollection.userInterfaceStyle',但是我对使用Flutter / Dart应用程序添加特定于平台的代码不是很熟悉。目前正在研究此解决方案!
例如,某人可能拥有CupertinoPicker具有自适应颜色的:
CupertinoPicker(
backgroundColor: isDarkModeEnabled ? Colors.black : Colors.white,
children: items.map((thisItem) => Text(thisItem.name)).toList(),
itemExtent: 32,
onSelectedItemChanged: (newItem) {
setState(() => this.item = items[newItem]);
}
)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种使用 Flutter 来检测操作系统深色模式是否处于活动状态的方法。我只希望我的应用程序遵循操作系统深色模式设置。我用谷歌搜索了一下,大多数主题都是关于“设置和切换”深色模式,而不是关于检测操作系统的深色模式。