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

时间:2018-08-20 21:10:30

标签: android flutter android-8.0-oreo flutter-layout

正如我的问题所暗示的那样,当我使用appBar时,我的Android导航栏颜色从其在Oreo中的默认白色变成了黑色

因此,当我的应用程序启动我的第一个脚手架时,它不使用应用程序栏,而仅包含具有某些内容的主体,但是当我更新状态并用新的主体将其替换为新的脚手架时, 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)具有硬件按钮,而不是软件按钮。

2 个答案:

答案 0 :(得分:0)

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


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

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

Brightness.light会在状态栏中显示黑色图标/文本。


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

答案 1 :(得分:0)

这似乎是fld sdk的错误,随着最近的更新,使用AppBar时导航栏的颜色不再自动更改,任何人的参考这都是我flutter doctor的结果

    Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.6.0, 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)