Sí, queremos crear un Splash Screen personalizada en nuestra APP de React Native lo primero que tenemos que hacer es crear dos Screen, uno va a ser el Splash Screen y otro la primera pantalla de la APP.
En APP.js añadimos un stack navigation con las pantallas (Splash Screen y Principal):
Si quieres saber como utilizar la navegación entre pantallas en React Native lo explicamos en este artículo Navegar entre screens con React Native
import React from "react"; import { View, StyleSheet } from "react-native"; import { NavigationContainer } from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; //Importar pantallas import Principal from './screens/Principal'; import SplashScreen from './screens/SplashScreen'; const Stack = createNativeStackNavigator(); //Crear un componente llamado APP const App = () => { return ( <View style={styles.container}> <NavigationContainer > <Stack.Navigator initialRouteName="Splash"> <Stack.Screen name="Splash" component={SplashScreen} options={{ headerShown: false }} /> <Stack.Screen name="Principal" component={Principal} options={{ headerShown: false }} /> </Stack.Navigator> </NavigationContainer> </View>) }; //Exporta el componente export default App; const styles = StyleSheet.create({ container: { flex: 1, } });
Ahora creamos la pantalla SplashScreen.js dentro de la carpeta screens
import React from "react"; import { View, StyleSheet, Text } from "react-native"; const SplashScreen = ({ navigation }) => { //Cuando pasen 3 segundos se navega a la pantalla Menu setTimeout(() => { //Elimina splash screen del stack navigation.replace('Principal'); }, 3000); return ( <View style={styles.container}> <Text >Splash Screen</Text> </View> ) }; export default SplashScreen; const styles = StyleSheet.create({ container: { flex: 1, flexDirection: 'column', justifyContent: 'center', alignItems: 'center', } });
Ahora explico el código que he creado.
La pantalla Splash Screen se va a mostrar 3 segundos. Para ello utilizo un contador y cuándo finaliza, reemplaza la pantalla Splash por la pantalla Principal (es la siguiente pantalla que queremos que muestre nuestra APP).
setTimeout(() => { //Elimina splash screen del stack navigation.replace('Principal'); }, 3000);
*El tiempo se indica en ms (3000) == 3s.
Dentro del View podremos añadir lo que queramos, un Texto como en el ejemplo, una imagen, un vídeo o animación…
Y así de sencillo es crear un Splash Screen para nuestras APPs.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.