Flutter修改状态栏状态 2023-08-22 周二

2023-08-21  本文已影响0人  勇往直前888

简介

状态栏一直没有管过,反正在最上层,也就亮(白),暗(黑)两种模式。一直没有问题,也很少有人关心

问题

后来,重写了头部,抛弃了AppBar(),用了一个Container()来模拟。并且在暗黑模式下,UI设计给的颜色是暗黑模式下,给的背景色是纯黑。这就导致,“暗黑下时间栏看不到了”

企业微信截图_41c2cc3a-38f0-4181-b987-feb474e8ec36.png

如何修改?

    if (ThemeTool.isdark()) {
      SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
    } else {
      SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
    }

修复效果

这种想法效果,对比很强烈,非常清晰

企业微信截图_5dbfc76d-8ede-4c48-9d3b-2d63289202dc.png 企业微信截图_1048415f-2982-4fad-8bf6-04cb8dd5f9e9.png

问题

在实际尝试过程中,发现改变状态栏不是每一次都成功,非常郁闷。
后来尝试了延时执行,感觉上能够提高成功率。

class DeviceUtil {
  /// 切换状态栏
  static changeStatusBar() {
    Future.delayed(const Duration(seconds: 1), () {
      if (ThemeTool.isdark()) {
        SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
      } else {
        SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
      }
    });
  }
}

参考文章

Flutter 单独页面状态栏颜色改变backgroundColor和statusBarColor

上一篇下一篇

猜你喜欢

热点阅读