Переход к навигации React на Android

#reactjs #react-native #react-navigation #react-navigation-stack #react-navigation-bottom-tab

#reactjs #react-родной #react-навигация #реагировать-навигация-стек #реакция-навигация-нижняя вкладка

Вопрос:

У меня есть навигатор нижней вкладки, и при нажатии кнопки он переместит меня на экран стека. На устройстве Android переход осуществляется снизу вверх. Я хочу добиться перехода слева направо, как на iOS, но я не знаю, как этого добиться.

Я добавил это на свой экран стека,

 <Stack.Navigator
  screenOptions={{
    cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS
  }}
>
    <Stack.Screen name="Screen 1" component={ScreenComponent1} />
    <Stack.Screen name="Screen 2" component={ScreenComponent2} />
</Stack.Navigator>
  

но он работает только с экрана стека 1 на экран 2, а не с экрана с нижней вкладкой на экран стека.
Пожалуйста, если у вас есть какое-либо решение?

Это мой нижний навигатор вкладок:

 <Tab.Navigator>
  <Tab.Screen name="Home" component={Home} />
  <Tab.Screen name="Profile" component={Profile} />
</Tab.Navigator>
  

И это главная:

 import React from 'react';
import {StyleSheet, Text, View} from 'react-native';
import {Button} from '../../components';

const Home = () => {
  return (
    <View>
      <Text>Go To Screen1</Text>
      <Button title="Screen1" />
    </View>
  );
};

export default Home;
  

Ответ №1:

Попробуйте это

 import {
  CardStyleInterpolators,
} from '@react-navigation/stack';

<NavigationContainer ref={NavigationService.navigationRef}>
        <Navigator
          
          screenOptions={{
            cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS, // Transition as IOS
          }}
      
          {...{headerMode}}>
          {screens.map(({name, component}, key) => (
            <Screen
              {...{name, component, key}}
              initialParams={
                name === 'App'
                  ? {
                      initRoute,
                      params,
                    }
                  : {}
              }
            />
          ))}
        </Navigator>
      </NavigationContainer>