React-navigation 在 Android 上启用滑动返回

Aba*_*ous 1 react-native react-navigation react-navigation-stack react-native-gesture-handler

我有一个堆栈导航,我想在 android 和 IOS 上启用滑动返回,这是我的代码

import {
  createStackNavigator,
  StackViewTransitionConfigs,
} from "react-navigation-stack";
import HomeScreen from "../../screens/Home/Home";
import CategoryScreen from "../../screens/Category/Category";
import SubCategoryScreen from "../../screens/SubCategory/SubCategory";
import ProductScreen from "../../screens/Product/Product";

const ShopStack = createStackNavigator(
  {
    Shop: {
      screen: HomeScreen,
      navigationOptions: {
        gesturesEnabled: true,
      },
    },
    Category: {
      screen: CategoryScreen,
      navigationOptions: {
        gesturesEnabled: true,
      },
    },
    SubCategory: {
      screen: SubCategoryScreen,
    },
    Product: {
      screen: ProductScreen,
      navigationOptions: {
        gesturesEnabled: true,
      },
    },
  },
  {
    headerMode: "none",
    transitionConfig: () => StackViewTransitionConfigs.SlideFromRightIOS,

    defaultNavigationOptions: {
      gesturesEnabled: true,
    },
  },
);
export default ShopStack;


Run Code Online (Sandbox Code Playgroud)

预期的行为是当在 Android 上滑动返回时,如 ios React-navigation 版本 4

Ole*_*sii 6

至于 v5、v6 有一个更简单的解决方案,只需将这些值放入screenOptions您的Stack.Navigator

gestureDirection: 'horizontal',
gestureEnabled: true,
...
<Stack.Navigator
  screenOptions={{
  gestureDirection: 'horizontal',
  gestureEnabled: true,
}}>
Run Code Online (Sandbox Code Playgroud)

这些选项将在 Android 上启用手势,并且方向现在将是“水平”,在 Android 上默认为“垂直”。