如何根据主题更改状态栏/导航栏颜色/亮度?
Posted
技术标签:
【中文标题】如何根据主题更改状态栏/导航栏颜色/亮度?【英文标题】:How to change status bar / navigation bar color/brightness with respective to theme? 【发布时间】:2022-01-20 02:58:27 【问题描述】:使用 Getx 进行主题化,但在根据浅色/深色主题更改状态栏图标亮度时遇到一些问题。
我找到了两种方法。
第一。
WidgetsBinding.instance!.addPostFrameCallback((_)
SystemChrome.setSystemUIOverlayStyle(overlayStyle);
);
这需要在 initState() 期间调用。
第二。
AnnotatedRegion<SystemUiOverlayStyle>()
这个小部件也可以正常工作。 有没有其他方法可以实现这个目的?
附:使用 Flutter 2.8.0
【问题讨论】:
【参考方案1】:您可以使用ThemeData
根据暗/亮来改变整个应用的亮度。
您的所有主题自定义都可以使用它来完成。下面是亮度和原色的示例。
ThemeData(
brightness: Brightness.dark, // or Brightness.light (for dark or light)
// .........
primarySwatch: Colors.orange, // for changing primary color
),
【讨论】:
以上是关于如何根据主题更改状态栏/导航栏颜色/亮度?的主要内容,如果未能解决你的问题,请参考以下文章