我们在我们的本机应用程序中显示了导航侧抽屉。 因此,对于特定的屏幕,我们必须禁用手势。 对于完整的应用程序,我们也隐藏了导航标题。
MyStack.navigationOptions = ({ navigation }) => {
let drawerLockMode = 'unlocked';
if ((navigation.state.index === 2) || (navigation.state.index === 3)) {
drawerLockMode = 'locked-closed';
}
return {
drawerLockMode,
header: null,
headerVisible: false,
};
};
const MyStack = createStackNavigator({
screen1: { screen: screen1, navigationOptions: { header: null, headerMode: 'none' } },
screen2: { screen: screen2, navigationOptions: { header: null, headerMode: 'none'} },
screen3: { screen: screen3, navigationOptions: { header: null, headerMode: 'none'} },
.
.
});
const MyAppStack = createAppContainer(createDrawerNavigator({
MyStack: {
screen: MyStack,
},
login: {
screen: login,
},
.
.
.
));
但是,所有屏幕上仍显示标题。
即使我们已经尝试过隐藏单个屏幕导航标题,但仍然没有隐藏。
class login extends Component<Props> {
static navigationOptions = {
header: null
};
有什么建议吗?
答案 0 :(得分:2)
要隐藏导航标题,请在headerMode
之外添加navigationOptions
。两者应处于同一级别。
export default createStackNavigator({
...
}, {
headerMode: 'none',
navigationOptions: {
...
}
});
更新1
const MyAppStack = createAppContainer(createDrawerNavigator({
MyStack: {
screen: MyStack,
navigationOptions: {
header:false, // or drawerLabel: () => null
}
},
login: {
screen: login,
},
.
.
.
));
答案 1 :(得分:1)
您好Anil,请尝试以下代码
MyStack.navigationOptions = ({ navigation }) => {
let drawerLockMode = 'unlocked';
if ((navigation.state.index === 2) || (navigation.state.index === 3)) {
drawerLockMode = 'locked-closed';
}
return {
drawerLockMode,
header: null,
headerVisible: false,
};
};
const MyStack = createStackNavigator({
screen1: { screen: screen1 },
screen2: { screen: screen2 },
.
}, {
headerMode: 'none',
navigationOptions: {
headerVisible: false,
});
答案 2 :(得分:0)
最后,在众多论坛上阅读并进行了一些实践之后,在React-Native Navigation中找到了限制特定屏幕手势/滑动的最佳解决方案。希望这对以后的人有帮助。
安装以下库
tuple