我想在进入黑暗模式时更改系统导航和状态栏的颜色。
这是我的代码:
void main() async {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Brightness.dark,
statusBarColor: Colors.white,
statusBarIconBrightness: Brightness.dark,
systemNavigationBarColor: Colors.white,
systemNavigationBarDividerColor: Colors.white,
systemNavigationBarIconBrightness: Brightness.dark,
),
);
...
}
我使用SystemChrome,它工作得很好。但我的问题是,我只能通过代码改变颜色手册,而不是当切换到黑暗或光明模式或当我使用系统设置。
3条答案
按热度按时间gcxthw6b1#
你可以像这样改变主题。
bn31dyow2#
在尝试了很多事情之后,我找到了以下解决问题的方法。我不知道这是不是最干净的解决方案,但它确实有效。对于那些不像我这样使用AppBar的人来说,这个解决方案很有趣。
诀窍如下。。
这个查询在我的类的构建中,在这个类中我有我的应用程序的NavigationBar。所有其他屏幕都连接在那里。
使用Theme.of(context).scaffoldBackgroundColor,我询问状态栏和导航栏应该使用哪种设计。
以下是不同颜色的两个函数:
如果还有什么不明白的,就问吧。:)
zaq34kh63#
考虑使用
AnnotatedRegion
小部件。以及基于上下文的
getSystemUIOverlayStyle
方法。更多详情https://api.flutter.dev/flutter/services/SystemChrome/setSystemUIOverlayStyle.html