iro*_*n59 2 ios dart flutter ios-darkmode
我正在编写适用于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)
对的,这是可能的。看这里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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方法为明暗模式设置不同的颜色,如果手机设置为暗模式或亮模式,则应用程序将自动切换。
MaterialApp(
theme: ThemeData(
brightness: Brightness.light,
primaryColor: Colors.red,
),
darkTheme: ThemeData(
brightness: Brightness.dark,
// additional settings go here
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2625 次 |
| 最近记录: |