Flutter IphoneX 状态栏颜色无 app Bar

Posted

技术标签:

【中文标题】Flutter IphoneX 状态栏颜色无 app Bar【英文标题】:Flutter IphoneX status bar color without app Bar 【发布时间】:2019-05-21 16:54:51 【问题描述】:

我有一种情况,我不想在我的应用程序中使用应用程序栏,问题是如果我删除应用程序栏,状态栏将采用默认颜色,并且脚手架中没有属性来更新状态栏颜色,有是否将 Body 包裹在安全区域中没有效果,状态栏始终保持不变

示例代码

return Scaffold(
        body: ListView(
      children: <Widget>[

【问题讨论】:

对布局没有影响 Flutter - How to set status bar color when AppBar not present的可能重复 【参考方案1】:

您可以通过使 AppBar 不可见来更改状态栏的颜色。使用PreferredSize,我们可以将AppBar的Height设置为0,并将backgroundColor属性设置为状态栏颜色。

appBar: PreferredSize(child: AppBar(
      backgroundColor: Colors.red,
      elevation: 0.0,
    ),
      preferredSize: Size.fromHeight(0.0)
  )

【讨论】:

【参考方案2】:

如果您不想使用脚手架Scaffold,可以更改此小部件以更改状态栏的文本/图标颜色:

AnnotatedRegion<SystemUiOverlayStyle>(
  value: SystemUiOverlayStyle.light, // or dark
  child: <your page>,
)

要更改背景颜色,请使用ContainerDecoratedBox

您可以从MediaQuery.of(context).padding获取状态栏的高度。

【讨论】:

我想要带脚手架的材料应用

以上是关于Flutter IphoneX 状态栏颜色无 app Bar的主要内容,如果未能解决你的问题,请参考以下文章

状态栏中图标的颜色 (Flutter)

flutter修改状态栏字体颜色

如何使用 Flutter 更改状态栏颜色?

Flutter系统导航栏和状态栏颜色[重复]

Flutter:在 iOS 中更改状态栏颜色

Flutter-如何在深色模式下更改状态栏文字颜色?