Flutter,Android - 是不是可以在启动(启动)屏幕上更改状态栏颜色?

Posted

技术标签:

【中文标题】Flutter,Android - 是不是可以在启动(启动)屏幕上更改状态栏颜色?【英文标题】:Flutter, Android - Is it possible to change status bar color on splash (launch) screen?Flutter,Android - 是否可以在启动(启动)屏幕上更改状态栏颜色? 【发布时间】:2020-11-14 03:56:57 【问题描述】:

我正在尝试在 Flutter for android 中更改启动画面上的状态栏颜色。但是,无论我做什么,它的颜色都保持不变(黑色)。我已经尝试在 Android styles.xml 中设置 colorPrimaryDark、statusBarColor 和其他内容。有可能吗?

【问题讨论】:

【参考方案1】:
 <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowTranslucentNavigation">true</item>
</style>

【讨论】:

这就是我需要的!谢谢 嗨@season,再次感谢您的帮助。我遇到了另一个问题,也许你知道如何解决它。应用 NormalTheme 或 SplashScreenDrawable 时 - 状态栏有一些覆盖 - prnt.sc/tnt6sb Dart 代码初始化后立即恢复正常 AppCompat 在 build.gradle 的依赖部分中需要 implementation 'com.android.support:appcompat-v7:27.1.1'。但是如上所述,这仅适用于启动屏幕。 Flutter 进程一开始,NormalTheme 就会生效,状态栏会变成深透明色。出于某种原因,io.flutter.embedding.android.NormalTheme 似乎完全覆盖或忽略了大多数样式,包括 statusBarColor,这是该解决方案未解决的问题。 @parkgrrr 经过一番钻研后,我发现这是一个更深层次的问题,无法完全解决 :(。您可能需要查看以下 GitHub 问题 (github.com/flutter/flutter/issues/64001 ) 虽然它在今天可能并不完全适用。 感谢您的解决方案,为我工作:我使用 parent="@android:style/Theme.Black.NoTitleBar" 并且一切正常。

以上是关于Flutter,Android - 是不是可以在启动(启动)屏幕上更改状态栏颜色?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 是不是适用于任何 Android 平台版本?

Flutter与Android通信的三种方式

iOS 和 Android Flutter 小部件是不是也适用于 Flutter Web(PWA)

Flutter:是不是有可能创建 App Widgets (Android) 和 Today Extensions (iOS)? [复制]

Android Studio Flutter Hot Reload热加载无效

Android 集成Flutter