如何在Flutter中使设备顶部面板(状态栏)具有与AppBar相同的背景颜色?

4
如何使Flutter中的设备顶部面板(状态栏)与AppBar具有相同的背景颜色?设备顶部面板的颜色始终比AppBar的背景颜色更暗。非常感谢。
2个回答

18

在iOS上,这已经是真的了。

在Android上,在调用super.onCreate(savedInstanceState);之后,在MainActivity.java中添加以下内容到onCreate中。

getWindow().setStatusBarColor(0x00000000);

这将覆盖默认状态栏颜色0x40000000,该颜色在FlutterActivityDelegateonCreate方法中设置。

在此输入图片描述


1
非常感谢您的快速回复。它有效了。^_^ - sgon00
1
有没有办法改变图标的颜色?我的应用栏是白色的。 - Ian
这以前可以运行,但现在我的 Kotlin 文件看起来像这样。如何获取透明栏?`import androidx.annotation.NonNull; import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugins.GeneratedPluginRegistrantimport android.os.Build import android.view.ViewTreeObserver import android.view.WindowManager class MainActivity: FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); } }` - CodeMemory

3

这里是一个针对Flutter的解决方案。在build方法中,您可以使用Flutter服务包。

import 'package:flutter/services.dart';
Widget build(BuildContext context) {
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: Colors.transparent, //top bar color
      statusBarIconBrightness: Brightness.dark, //top bar icons
      systemNavigationBarColor: Colors.white, //bottom bar color
      systemNavigationBarIconBrightness: Brightness.dark, //bottom bar icons
    ));

//....
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接