import React from 'react';
import { Text, View } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import Icon from 'react-native-vector-icons/Ionicons';
function HomeScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text style={{ fontSize: 24 }}>Home</Text>
</View>
);
}
function SettingsScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text style={{ fontSize: 24 }}>Settings</Text>
</View>
);
}
function ProfileScreen() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text style={{ fontSize: 24 }}>Profile</Text>
</View>
);
}
const Tab = createBottomTabNavigator();
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator
screenOptions={({ route }) => ({
tabBarIcon: ({ color, size }) => {
let iconName = '';
if (route.name === 'Home') {
iconName = 'home-outline';
} else if (route.name === 'Settings') {
iconName = 'settings-outline';
} else if (route.name === 'Profile') {
iconName = 'person-outline';
}
return <Icon name={iconName} size={size} color={color} />;
},
tabBarActiveTintColor: '#2f95dc',
tabBarInactiveTintColor: 'gray',
headerShown: false
})}
>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen name="Settings" component={SettingsScreen} />
<Tab.Screen name="Profile" component={ProfileScreen} />
</Tab.Navigator>
</NavigationContainer>
);
}This app uses React Navigation's Bottom Tab Navigator to create three tabs: Home, Settings, and Profile.
Each tab has its own simple screen component that centers a title text.
Icons from react-native-vector-icons/Ionicons are used for each tab, changing color when active or inactive.
The NavigationContainer wraps the navigator to manage navigation state.
The tab bar is always visible, and the header is hidden for a clean look.