React Native Android启动屏幕总是打开



第一次设置React Native启动屏,我有一个小错误,我无法解决。

我遵循了这篇文章,并且完全遵循了它(现在除了IOS部分)https://medium.com/@appstud/add-a-splash-screen-to- react-native-app-810492e773f9

我在谷歌等上搜索了类似的问题,我没有发现任何人有任何类似我的问题。

这是我从文章中添加/修改的文件:

安装npm包npm install react-native-splash-screen --save.

android/app/src/main/res/可拉的/background_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/splashscreen_bg"/>
<item
android:width="300dp"
android:height="300dp"
android:drawable="@mipmap/splash_icon"
android:gravity="center" />
</layer-list>

AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<!-- Add this SplashActivity -->
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Remove the intent-filter of the MainActivity and add a param android:exported="true" -->
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize"
android:exported="true"/>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

android/app/src/main/java/[your_package_name]/SplashActivity.java:

import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}

android/app/src/main/java/[your_package_name]/MainActivity.java:

import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;
import android.os.Bundle;
public class MainActivity extends ReactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SplashScreen.show(this);
super.onCreate(savedInstanceState);
}
@Override
protected String getMainComponentName() {
return "nameOfPackage";
}
}

我已经遗漏了所有的android样式文件(不认为他们是相关的等)。我在Android开发或Java方面也没有任何经验(但我能读懂),这就是我问这个问题的原因。

如果我删除

@Override
protected void onCreate(Bundle savedInstanceState) {
SplashScreen.show(this);
super.onCreate(savedInstanceState);
}
在<<p> strong> MainActivity ,然后,当内容准备好显示时,闪屏就会消失,然而,闪屏的背景会停留一两秒钟。然后我被告知添加上面的代码,这样我就可以无缝地移动到内容上,但这就是启动屏幕卡住的地方,上面的代码被添加。我试着在onCreate之后做SplashScreen.hide(this),但没有任何帮助(再次,不知道android开发或java)。

感谢您的宝贵时间!

您将在javascript端使用SplashScreen.hide()。当您准备隐藏启动屏幕时,需要在组件中运行SplashScreen.hide()。你还需要导入SplashScreen

import SplashScreen from 'react-native-splash-screen';

最新更新