我正在编写适用于Android和iOS的Flutter应用,该应用将根据iOS的黑暗模式状态更改其样式/主题。
当前在Flutter中是否有类似MediaQuery.isDarkModeEnabled的东西?
here上有一个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]);
}
)
答案 0 :(得分:9)
您可以在此处为亮和暗模式设置不同的颜色,如果手机设置为暗模式或亮模式,应用程序将自动切换。
MaterialApp(
theme: ThemeData(
brightness: Brightness.light,
primaryColor: Colors.red,
),
darkTheme: ThemeData(
brightness: Brightness.dark,
// additional settings go here
),
);
答案 1 :(得分:1)
是的,有可能。在这里https://github.com/flutter/flutter/issues/33873#issuecomment-536309491 这就是答案。
if(ios13==true){
bool qDarkmodeEnable;
var qdarkMode = MediaQuery.of(context).platformBrightness;
if (qdarkMode == Brightness.dark){
qDarkmodeEnable=true;
} else {
qDarkmodeEnable=false;
}
}
答案 2 :(得分:0)