Android状态栏在启动屏幕中隐藏/更改颜色

Gae*_* L. 0 android

我按照此教程在我的应用程序中实现了无布局的启动屏幕:https : //www.bignerdranch.com/blog/splash-screens-the-right-way/

我设法为MainActivity更改状态栏的颜色,甚至使用主题将其更改为全屏显示。但是,我尝试过的所有方法都无法与初始屏幕一起使用。也许是因为它不使用布局,而是直接使用可绘制对象作为背景:

<style
    name="AppTheme"
    parent="@android:style/Theme.Material.Light.NoActionBar">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColor">@color/textColor</item>
    <item name="iconColor">@color/iconColor</item>
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style
    name="SplashTheme"
    parent="AppTheme">

    <item name="android:windowBackground">@drawable/splash_screen</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我尝试使用全屏主题,在活动使用的主题中设置android:statusBarColor,还尝试了以下两个代码:

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(ContextCompat.getColor(this, android.R.color.transparent));
Run Code Online (Sandbox Code Playgroud)

这4种方法适用于我的正常活动,但不适用于初始屏幕。有什么我可以做的吗?

编辑:我的目标是minSdkVersion 23

ram*_* vv 5

使用 <item name="android:windowFullscreen">true</item>

<style
    name="SplashTheme"
    parent="AppTheme">
    <item name="android:windowFullscreen">true</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/splash_screen</item>
</style>
Run Code Online (Sandbox Code Playgroud)