android - 当我在 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有硬件按钮而不是软件的。
解决方案
AppBar
在内部创建一个AnnotatedRegion<SystemUiOverlayStyle>
由 Flutter 的原生 UI 绑定处理的小部件。它使状态栏变暗或变亮。
在带有 的屏幕上AppBar
,您可以使用它的brightness
属性来更改状态栏颜色:
AppBar(
brightness: Brightness.light,
title: new Text('Flutter Test'),
)
Brightness.light
导致带有深色图标/文本的状态栏。
在没有 的屏幕上AppBar
,您可以使用AnnotatedRegion<SystemUiOverlayStyle>
设置状态栏的颜色。
推荐阅读
- php - App\Billing\FakePaymentGateway 类的对象无法转换为字符串
- c# - 在 TreeViewAdv 中拖动节点时显示工具提示
- postman - 如何使用 POSTMAN api 工具在 Moodle 上发布请求
- python - 如何在日志文件中创建带有记录号的python记录器
- javascript - 如何在 Node.js 中实现递归 Promise 调用
- android - 无法覆盖 androidx.listPreference 中的 onDialogClosed ,有解决此问题的示例吗?
- json - 如何使用csv为Jmeter中不同输入的json断言提供不同的值?
- javascript - 如何使用数组的每个成员作为参数来搜索字符串
- android - Unity:自定义程序天空盒在构建时消失
- android - Google 的位置权限对话框可以添加任何 OnClickListener 吗?