[英]Issue with Fake Splash Coming in Android before Custom Splash In React Native App
我在我的 React Native 应用程序中创建了自定义启动画面,它在所有 iOS 设备上运行良好,甚至在几个 Android 设备上运行良好。
因此,Android 设备中出现的问题是,当我首先通过单击应用程序图标启动应用程序时,它显示带有应用程序图标的黑屏作为假启动画面,然后显示自定义启动画面。
那么为什么它只出现在特定的 Android 设备上呢?
有什么办法可以禁用它吗?
在某些 Android 设备上,您遇到的“假”启动画面出现在自定义启动画面之前的问题可能是由于设备在启动应用程序时的默认行为。 某些 Android 设备在显示您创建的自定义启动画面之前,可能会在加载应用程序时显示带有应用程序图标的空白屏幕作为“假”启动画面。
要在 Android 设备上禁用默认的“假”启动画面,您可以尝试以下步骤:
将以下代码添加到您的 AndroidManifest.xml 文件中:
<meta-data
android:name="android.app.splash_screen_drawable"
android:resource="@drawable/custom_splash" />
将 @drawable/custom_splash 替换为自定义启动画面的资源 ID。 此代码告诉 Android 使用您的自定义启动画面而不是默认的“假”启动画面。
在 Android 项目的 res/values 目录中创建一个名为 styles.xml 的新文件(如果尚不存在)。
在styles.xml中添加如下代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/custom_splash</item>
</style>
</resources>
将 @drawable/custom_splash 替换为自定义启动画面的资源 ID。 此代码将应用程序 window 的背景设置为您的自定义初始屏幕。
将以下代码添加到您的 MainActivity.java 文件中:
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
}
此代码将应用程序的主题设置为 styles.xml 中定义的 AppTheme 样式,这会将应用程序的 window 的背景设置为您的自定义启动画面。
执行这些步骤后,在支持此自定义的 Android 设备上,默认的“假”初始屏幕应替换为您的自定义初始屏幕。 但是,请务必注意,并非所有 Android 设备都支持此自定义,并且某些设备可能仍会显示默认的“假”启动画面。
最后,在进行了大量研究之后,我找到了为什么这个额外的飞溅仅出现在自定义飞溅之前的特定 Android 设备上的根本原因。
所以原因是在 Android 操作系统和更高版本的操作系统中,有一个名为“默认启动画面”的附加功能,所以它会做的是它将应用程序图标作为徽标并在启动时将其加载到黑屏的中央作为默认启动的应用程序。
所以你不需要做任何额外的努力来添加一个启动画面,它会自动接受它。
重要的提示:
如上所述,它仅适用于运行操作系统版本 12 或更高版本的 Android 设备。 Android 12 个以下设备的操作系统将在没有默认启动画面的情况下正常工作。
可能的解决方案:
现在重要的问题是,如果我们想显示自定义启动画面,我们如何处理它。 因此,我们可以尝试几种可能的解决方案。
解决方案 1:我们可以用自定义启动覆盖默认启动,但是它不是一个久经考验的解决方案,但我们绝对可以尝试
解决方案 2:我们可以在默认启动画面之后显示自定义启动画面,这是经过尝试和测试的可能场景并且在所有 android 设备上运行良好。 只有它会有所不同,就像在 OS 12+ 设备上一样,它将显示默认和自定义启动画面,而在旧设备上,它将仅显示自定义启动画面
解决方案 3:最后一个可能的解决方案是我们可以尝试禁用默认启动画面,但这不是推荐的解决方案
希望这对大家有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.