Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

TabNavigator.js 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import React from "react";
  2. import { createNativeStackNavigator } from "@react-navigation/native-stack";
  3. import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
  4. import { getFocusedRouteNameFromRoute } from "@react-navigation/native";
  5. import HomeScreen from "../screens/HomeScreen";
  6. import Ionicons from "@expo/vector-icons/Ionicons";
  7. import FavoriteScreen from "../screens/FavoriteScreen";
  8. const Tab = createBottomTabNavigator();
  9. const Stack = createNativeStackNavigator();
  10. const HomeStack = () => {
  11. return (
  12. <Stack.Navigator>
  13. <Stack.Screen
  14. name="Home"
  15. component={HomeScreen}
  16. options={{ headerShown: false }}
  17. />
  18. </Stack.Navigator>
  19. );
  20. };
  21. const TabNavigator = () => {
  22. return (
  23. <Tab.Navigator
  24. screenOptions={{
  25. headerShown: false,
  26. tabBarShowLabel: false,
  27. tabBarStyle: { backgroundColor: "#AD40AF" },
  28. tabBarInactiveTintColor: "#fff",
  29. tabBarActiveTintColor: "yellow",
  30. }}
  31. >
  32. <Tab.Screen
  33. name="Home2"
  34. component={HomeStack}
  35. options={({ route }) => ({
  36. tabBarStyle: {
  37. display: getTabBarVisibility(route),
  38. backgroundColor: "#AD40AF",
  39. },
  40. tabBarIcon: ({ color, size }) => (
  41. <Ionicons name="home-outline" color={color} size={size} />
  42. ),
  43. })}
  44. />
  45. <Tab.Screen
  46. name="Favorite"
  47. component={FavoriteScreen}
  48. options={{
  49. tabBarIcon: ({ color, size }) => (
  50. <Ionicons name="heart-outline" color={color} size={size} />
  51. ),
  52. }}
  53. />
  54. </Tab.Navigator>
  55. );
  56. };
  57. const getTabBarVisibility = (route) => {
  58. const routeName = getFocusedRouteNameFromRoute(route) ?? "Feed";
  59. if (routeName === "Details") {
  60. return "none";
  61. }
  62. return "flex";
  63. };
  64. export default TabNavigator;