首页 > 解决方案 > 当我在 Flutter 中使用 appBar 时,Android 导航栏颜色从默认的白色(在 Oreo 中)变为黑色,为什么?

问题描述

因此,正如我的问题所暗示的那样,当我使用 appBar 时,我的 Android 导航栏颜色会从 Oreo 中的默认白色变为黑色

所以当我的应用程序启动我的第一个 Scaffold 时,不使用应用程序栏并且只有一个包含一些内容的主体,但是当我更新状态并将其替换为具有新主体的新脚手架和 Android Oreo 设备中的应用程序栏时默认的白色导航栏颜色变为黑色,如果我删除应用栏它不会发生,无论如何我可以防止这种情况发生吗?

如果这很重要,这是我颤抖的医生结果:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.12.6 16G1408, locale en-IN)
[✓] Android toolchain - develop for Android devices (Android SDK 28.0.2)
[✓] iOS toolchain - develop for iOS devices (Xcode 9.2)
[✓] Android Studio (version 3.1)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[!] VS Code (version 1.26.1)
[✓] Connected devices (1 available)

! Doctor found issues in 1 category.

编辑:

导航栏是指底部的Android软件导航按钮而不是状态栏,这个导航栏由“主页”、“最近”和“返回”按钮组成,一些设备如Galaxy S7有硬件按钮而不是软件的。

标签: androidflutterandroid-8.0-oreoflutter-layout

解决方案


AppBar在内部创建一个AnnotatedRegion<SystemUiOverlayStyle>由 Flutter 的原生 UI 绑定处理的小部件。它使状态栏变暗或变亮。


在带有 的屏幕上AppBar,您可以使用它的brightness属性来更改状态栏颜色:

AppBar(
  brightness: Brightness.light,
  title: new Text('Flutter Test'),
)

Brightness.light导致带有深色图标/文本的状态栏。


在没有 的屏幕上AppBar,您可以使用AnnotatedRegion<SystemUiOverlayStyle>设置状态栏的颜色。


推荐阅读