← back to Beverlyhillsvideos App
app/(tabs)/_layout.tsx
82 lines
import { Tabs } from 'expo-router';
import { Platform, Text } from 'react-native';
import { Colors } from '@/constants/Colors';
function TabIcon({ label, focused }: { label: string; focused: boolean }) {
return (
<Text
style={{
fontSize: 22,
color: focused ? Colors.tabActive : Colors.tabInactive,
}}
>
{label}
</Text>
);
}
export default function TabsLayout() {
return (
<Tabs
screenOptions={{
headerShown: false,
tabBarActiveTintColor: Colors.tabActive,
tabBarInactiveTintColor: Colors.tabInactive,
tabBarStyle: {
backgroundColor: Colors.cream,
borderTopColor: Colors.border,
borderTopWidth: 0.5,
elevation: 0,
shadowOpacity: 0,
height: Platform.OS === 'ios' ? 84 : 64,
paddingBottom: Platform.OS === 'ios' ? 28 : 10,
paddingTop: 8,
},
tabBarLabelStyle: {
fontSize: 11,
fontWeight: '500',
letterSpacing: 0.3,
marginTop: 2,
},
}}
>
<Tabs.Screen
name="index"
options={{
title: 'Home',
tabBarIcon: ({ focused }) => (
<TabIcon label={focused ? 'home_filled' : 'home'} focused={focused} />
),
}}
/>
<Tabs.Screen
name="videos"
options={{
title: 'Videos',
tabBarIcon: ({ focused }) => (
<TabIcon label={focused ? 'play_circle_filled' : 'play_circle'} focused={focused} />
),
}}
/>
<Tabs.Screen
name="map"
options={{
title: 'Map',
tabBarIcon: ({ focused }) => (
<TabIcon label={focused ? 'map_filled' : 'map'} focused={focused} />
),
}}
/>
<Tabs.Screen
name="guides"
options={{
title: 'Guides',
tabBarIcon: ({ focused }) => (
<TabIcon label={focused ? 'menu_book_filled' : 'menu_book'} focused={focused} />
),
}}
/>
</Tabs>
);
}