如何防止屏幕导航到某个方向

问题描述 投票:0回答:1

我目前使用React Navigation有一个嵌套的导航堆栈:

const HomeStack = createStackNavigator({
    Home: {
        screen: HomeScreen,
    },
    Detail: {
        screen: DetailScreen,
        navigationOptions: {
            header: null,
        },
    }
})

const MainStack = createMaterialTopTabNavigator({
    Home: {
        screen: HomeStack ,
    },
    Profile: {
        screen: ProfileScreen,
    },
}, {
        tabBarPosition: null,
    }
)

第一层是使用MainStackcreateMaterialTopTabNavigator,如上所述。在第二层上,当我从HomeScreen导航到DetailScreen时,我希望从该屏幕导航的唯一方法是向右滑动即可返回HomeScreen

但是,我现在能够从DetailScreen向左滑动,并直接导航到第一层的ProfileScreen,就好像我要从HomeScreen走一样。我猜想这是createMaterialTopTabNavigator的功能或错误,但是我需要使用createMaterialTopTabNavigator,这样我才能通过滑动而无需从导航标签上按一下,从而从一个屏幕导航到另一个屏幕react-native-viewpager,但在非堆叠屏幕之间。

更具体地说,我希望其行为如下:

HomeScreen-> DetailScreen-(向右滑动)-> HomeScreen-> ProfileScreen

但是,目前可能进行以下操作:

HomeScreen-> DetailScreen-(向左滑动)-> ProfileScreen

是否有一种方法可以将导航从导航堆栈第二层的DetailScreen直接阻止到导航堆栈第一层的ProfileScreen?否则,是否有一种方法可以使用与createMaterialTopTabNavigator不同的导航器导航到同一级别上的不同非堆叠屏幕?

react-native react-navigation expo
1个回答
0
投票

尝试一下

const HomeStack = createStackNavigator({
    Home: {
        screen: HomeScreen,
    },
    Detail: {
        screen: DetailScreen,
        navigationOptions: {
            header: null,
            gestureEnabled: false, //added this one 
        },
    }
})
© www.soinside.com 2019 - 2024. All rights reserved.