Aprender cómo crear un menú de pestañas o tab menú en aplicaciones React es esencial para ofrecer una navegación intuitiva y fácilmente accesible a los usuarios. Utilizando React Navigation, podrás incluir un menú ubicado en la parte inferior para moverte fácilmente entre diferentes pantallas de tu app.
¿Cómo preparar el proyecto para la navegación por pestañas?
Primero, accede a tu carpeta SRC y crea un nuevo archivo dentro de la carpeta navigation llamado tab.js. En este archivo, debes importar React y la función específica que genera esta navegación, importando desde @react-navigation/bottom-tabs. Utilizarás la siguiente estructura:
Recuerda importar previamente los componentes HomeScreen y SettingsScreen desde tu carpeta de pantallas (screens).
¿De qué manera integrar esta navegación con la aplicación?
Para utilizar esta nueva navegación en tu aplicación, modifica el archivo app.js. Debes importar el componente NavigationTab, reemplazando la navegación que tengas definida previamente por esta nueva configuración:
Cuando ejecutes tu app, verás un menú ubicado en la parte inferior que te permitirá cambiar la vista entre "Home" y "Settings", simplificando tu interacción y mejorando la experiencia visual.
¿Cómo solucionar problemas visuales comunes?
Si notas un desplazamiento o que los textos no quedan visibles adecuadamente, una pronta solución es utilizar SafeAreaView. Esto permitirá aprovechar de mejor manera el espacio en distintos dispositivos móviles, evitando situaciones incómodas como que tu texto quede oculto por los elementos de interfaz del teléfono.
La implementación es muy sencilla, cambia la vista (View) por:
import{SafeAreaView}from'react-native';exportdefaultfunctionHomeScreen(){return(<SafeAreaView>{/* tu contenido aquí */}</SafeAreaView>);}
Al realizar estos ajustes, mejorarás significativamente la visualización del contenido en diferentes modelos de teléfonos.
Te animamos a probar esta configuración en tu próximo proyecto o comentar cualquier inquietud o sugerencia sobre otras configuraciones de navegación que te gustaría explorar.
Yo estoy trabajando con android studio y no me funciono el SafeAreaView, lo que pude investigar es que solo funciona el IOS, la solucion que se me ocurrio es colocarle un marginTop a cada vista, pero esto puede generar un problema poque la pantalla de los android son muy distinta entre si, si alguien sabe un mejor metodo se lo agradezco que me lo diga
Si no te funciona el SafeAreaView debes instalar
-> npm install react-native-safe-area-context
Y importar
-> import { SafeAreaView } from “react-native-safe-area-context”;
al agregar el safeAreaView necesitamos agregar el flex porque en ocaciones no se ve nada
<SafeAreaView style={{ flex: 1,}} >
Compañeros, si tienen problema con SafeAreaView.
En mi caso funcionó usándolo desde:
import { SafeAreaView } from 'react-native-safe-area-context'
Ahora en Junio del 2025, se puede usar expo de la siguiente manera:import { Tabs } from 'expo-router';import { Saludar } from '@/components/Saludar';
const NavigatioTab = () => { return( <> <Tabs> <Tabs.Screen> </Tabs.Screen> </Tabs> </> )}
Consulta chicos. Estoy teniendo un problema al recargar el proyecto en el emulador de android. Estaba trabajando perfectamente y ejecuté el comando R para que se recargara el proyecto y no lo carga, se queda con la pantalla en blanco y el círculo dando vueltas y no pasa de allí ¿Alguien me puede ayudar por favor?
¿Tienes la ultima version de Android Studio instalada?
Si quieren agregarle de una vez iconos arriba del titulo en la pestana del tab, lo pueden utilizar descargando la libreria :
si desean igualmente ver que icons utilizar pueden ir a el sitio de font awesome y darle click a la opcion Icons
No soy ingeniero de sistemas, pero a este curso le falta un capitulo relacionado con la instalación de sus compoentes y como resolver los problemas presentados, asi por ejemplo:
Deshabilitar el hyper-v de windows
2, Accder a variables de entorno y agregar un nuevo path
Saber utilizar la pagina de la aplicación corrrespondiente.
Actualizar algunas versiones, por ejemplo la 5 ya no se usa.
Aprender a quitar y volver a colocar el modulo de niode_modules
6.Aprender comandos basicos de git como: guardar repositorios o trabajar en ramas diferentes.
Aprender a utilizar algunos comandosd de npx, en especial el de npx-doctor, que permite conciliar las diferentes versiones de software que se tienen instalados.
recomiendo manejat todo con expo y/o npm, no me fue bien con yarn
Con base en todo lo anterior , ami me funcina bien el código de Safe....; adjunto codigo:
import React from "react";
import { View, Text, Button, SafeAreaView } from "react-native";
return (
<SafeAreaView>
<Text>Estamos en SettingsScreen</Text>
<Text>Estamos en SettingsScreen</Text>
<Text>Estamos en SettingsScreen</Text>
<Text>Estamos en SettingsScreen</Text>
<Text>Estamos en SettingsScreen</Text>
<Text>Estamos en SettingsScreen</Text>
<Button onPress={() => goToPage("Home")} title="Ir a HOME" />
</SafeAreaView>
);
}
Tuve error con el SafeAreaView en IOS lo solucione de esta forma: