ReatcNative 修复启动白屏问题
在启动RN项目时候,会默认有一个启动白屏,卡着很难看。我们使用
react-native-splash-screen
来修复这个问题。
安装
npm install react-native-splash-screen --savecd ios && pod install
配置使用
- Android
首先在
anroid/app/build.gradle
中添加下面的配置
dependencies {implementation project(':react-native-splash-screen') // splash
}
在
android/res/*
下面添加layout
文件夹, 在里面添加launch_screen.xml
,其次在android/res/*
下面添加drawable
文件夹📂,这里存放你的启动页(注意📢,这里可以根据像素设置文件夹, 例如drawable-hdpi)会按照设备大小适配。drawable/launch_screen.png
<!-- launch_screen.xml --><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/launch_screen" android:scaleType="centerCrop" />
</RelativeLayout>
上面的配置好以后, 在
android/values
文件夹📂下新建colors.xmnl
<!-- colors.xml 这里用来设置配色 -->
<?xml version="1.0" encoding="utf-8"?>
<resources><color name="primary_dark">#000000</color>
</resources>
再去修改
values/styles.xml
<!-- 设置背景透明 -->
<item name="android:windowIsTranslucent">true</item>
上面的配置文件修改好后, 我们来写
java
代码, 在项目android/app/scr/main/res/*
, 来修改
// MainActivity.java
import com.facebook.react.ReactActivity;
import org.devio.rn.splashscreen.SplashScreen;@Overrideprotected void onCreate(Bundle savedInstanceState) {SplashScreen.show(this);super.onCreate(savedInstanceState);}
- ios
在
AppDelegare.m
文件中添加下面的配置
#import "RNSplashScreen.h"[RNSplashScreen show];
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mNWvwyQ5-1657163021635)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9226585ec8d543ac9c52ef89bf2ca916~tplv-k3u1fbpfcp-watermark.image?)]
打开
Xcode
, 进行下图的配置
使用
import SplashScreen from 'react-native-splash-screen';setTimeout(() => {SplashScreen.hide();
}, 2500);