Flutter:不使用AppBar时如何在Android和iOS上更改状态栏文本颜色[重复]

Posted

技术标签:

【中文标题】Flutter:不使用AppBar时如何在Android和iOS上更改状态栏文本颜色[重复]【英文标题】:Flutter: How to change the status bar text color on Android and iOS when not using AppBar [duplicate] 【发布时间】:2020-09-03 04:47:30 【问题描述】:

我是 Flutter 的新手,我在 Google 上搜索过这个问题,但没有找到适合我的答案。

我的代码如下所示,状态栏颜色很好,现在是白色的。但是android上的状态栏文字颜色也是白色的,好像Brightness.dark根本不起作用...

您的回答将不胜感激,谢谢!

Widget build(BuildContext context) 

 SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(
   statusBarColor: Colors.white, // Color for Android
   statusBarBrightness: Brightness.dark // Dark == white status bar -- for ios.
 ));

 return Scaffold(
   body: Container(
     ...

【问题讨论】:

请检查这个答案:***.com/a/61025717/7666442 嗨@NileshRathod,谢谢你的建议。我在发布问题之前尝试了您的答案,但它不适用于我的情况,错误一直显示 Utils 未定义:( 你知道为什么吗? 我在和Utils 类中定义了Brightness.darkBrightness.light 作为常量,这就是我使用Utils.androidWhiteIcon 的原因 大声笑,我明白了,顺便说一句,我发现下面的答案就像魅力一样!无论如何,谢谢你! 顺便说一句 @NileshRathod 你能删除我问题的[重复]标签吗?因为这与您提供的链接提出的问题并不完全相同。 @@ 那是询问更改状态栏颜色,而不是更改状态栏文本颜色。 【参考方案1】:

根据SystemUiOverLayStyle API docs,Android 上状态栏的文字颜色不能被statusBarBrightness 改变,只有iOS 支持。

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: Colors.white,               // Only honored in Android M and above
      statusBarIconBrightness: Brightness.dark   // Only honored in Android M and above
      statusBarBrightness: Brightness.light,      // Only honored in iOS
));

希望这会有所帮助!干杯

【讨论】:

以上是关于Flutter:不使用AppBar时如何在Android和iOS上更改状态栏文本颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何仅在滚动后显示 AppBar?

如何在 Flutter 中使用 GestureDetector 隐藏 appBar?

Flutter:如何从 appbar 动作中显示快餐栏

尝试在材质应用程序中使用文本时,AppBar 中的 Flutter 非常量构造函数错误

如何在 Flutter 中获取 AppBar 高度?

如何在 Flutter 的 AppBar 中有可点击的文本