我在我的flutter应用程序(Android版)上添加了一个启动屏幕,如下所示:
打开values/styles.xml并添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <!-- Show a splash screen on the activity. Automatically removed when
             Flutter draws its first frame -->

        <!--following 2 lines modified by me-->

        <item name="android:windowBackground">@drawable/splash_screen</item>
        <item name= "android:windowFullscreen">true</item>
    </style>
</resources>

但是,当我在真实设备中运行应用程序时,启动屏幕会显示一种奇怪的行为:
我不确定会显示多少秒的闪屏,但是,例如,假设它持续3秒,那么,在前1或1.5秒,屏幕底部看起来像这样,显示底部软件按钮:
android -  flutter 的闪屏不隐藏底栏-LMLPHP
在这1或1.5秒之后,底部的条消失了,启动屏幕按预期再显示1或1.5秒,然后应用程序启动。
如何解决这个问题,使喷溅从一开始就覆盖整个屏幕?

最佳答案

MainActivity.java
写这个:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    this.getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

07-24 09:49