android 应用启动去除 状态栏 白屏

本文介绍了在Android应用启动时出现状态栏白屏现象的解决方案,通过在style.xml中设置启动页风格为透明,并在AndroidManifest.xml中设定主题,可以消除安卓11系统的启动白屏。然而,使用.9图可能会导致导航栏兼容性问题,如在Pixel设备上导航栏被遮盖。解决方法包括避免使用.9图或调整style中的设置,但可能引入轻微的图片偏移。作者寻求大厂在处理.9图、启动图和导航栏兼容性方面的成熟做法。

现在大多数应用都设置了沉浸式,但是在启动app的时候,会有一个白色+状态栏的界面,比较影响体验。

启动页
在这里插入图片描述

在安卓11系统运行时,可以看到一瞬间的白屏与蓝紫色的状态栏
11

安卓6.0系统没有这个情况
6.0
解决方法:
在style.xml中为启动页声明一个style,设置主题颜色透明和背景资源,可以解决这个问题

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <!-- 启动页 theme. baidu为自己切的一张白色.9图 -->
    <style name="StartTheme" parent="AppTheme">
        <item name="colorPrimary">@android:color/transparent</item>
        <item name="colorPrimaryDark">@android:color/transparent</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowBackground">@mipmap/baidu</item>
    </style>

在启动页中去掉设置background的代码,在AndroidManifest.xml中为启动页设置主题

        <activity android:name=".SplashActivity"
            android:theme="@style/StartTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这样就和6.0系统的效果一样了,在打开应用的瞬间就可以显示出图片,并且状态栏是透明的
出现的问题
在使用.9图时,在少数设备上会出现导航栏兼容问题。在pixel上比较明显,导航栏会有部分被.9图遮盖
在这里插入图片描述
在华为手机上,在启动页面看起来没问题,但是切换到任务视图时会发现,导航栏那一块其实有灰色的占位。在小米手机上没有发现这个问题。不使用.9图时也不会有这个问题。
解决方法:
不使用.9图,或者在style中声明的<item name="android:windowBackground">@mipmap/baidu</item>改为<item name="android:background">@mipmap/baidu</item>,修改后可以解决导航栏的问题,但是在启动中(打开应用显示状态栏与白屏时)和显示启动页这两个状态,图片会发生非常轻微的偏移,可能是缩放方式导致的。

不知道成熟的大厂应用是用什么方法让.9图 启动图和导航栏这几个相互兼容的,有朋友知道的话欢迎在评论区指导一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值