本文主要是介绍Android 闪屏页在刘海屏手机上沉浸式不起作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先说说闪屏页的思路:给闪屏页activity单独设置一个主题(theme)
<style name="SplashTheme" parent="AppTheme"><item name="android:windowBackground">@drawable/splash</item><item name="android:windowNoTitle">true</item><item name="android:windowFullscreen">true</item><item name="windowActionBar">false</item><item name="windowNoTitle">true</item></style>
splash.xml如此
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@android:color/white"/><item android:gravity="center"><bitmapandroid:gravity="center"android:src="@mipmap/splash"/></item>
</layer-list>
清单文件设置:
<activityandroid:theme="@style/SplashTheme"android:name=".activity.SplashActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity>
现在启动应用应该不会有白屏了,但是如果你闪屏页跟<item name="android:windowBackground">@drawable/splash</item>设置的图片一样,并且设置了沉浸式,在有刘海屏手机打开会发现效果并没那么理想,如下图
在不是刘海屏的手机上就没问题,经过测试发现,不是Window的问题,是闪屏页的沉浸式没有起作用,一下是解决的方法
两种方法:
- 用原生沉浸式的在调用方法前先设置主题 setTheme(R.style.AppTheme);然后调用沉浸式代码
- 用第三方库 ImmersionBar 很好很强大
Demo地址
这篇关于Android 闪屏页在刘海屏手机上沉浸式不起作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!