我一直在寻找解决方案很长一段时间,但令人惊讶的是,我认为还没有人面对过它。所以我发布它。
我用 React Navigation V3 创建了一个简单的 Drawer Navigator。我添加了一个菜单图标,当我单击它时,抽屉会按原样出现。但是,没有手势起作用。从左向右滑动不做任何事情。即使抽屉打开,点击空白区域也不会关闭抽屉。
这是我的代码:
import {
createStackNavigator,
createSwitchNavigator,
createAppContainer,
createDrawerNavigator
} from 'react-navigation';
import Home from './screens/Home';
import LoginForm from './screens/LoginForm';
import Articles from './screens/Articles';
const AuthStack = createStackNavigator({
LoginScreen: LoginForm
});
const AppStack = createDrawerNavigator({
HomeScreen: Home,
ArticlesScreen: Articles
});
const RootNavigator = createSwitchNavigator(
{
Auth: AuthStack,
App: AppStack
},
{
initialRouteName: 'Auth'
}
);
export default createAppContainer(RootNavigator);
原文由 Sadman Muhib Samyo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我找到了解决方案。 React Navigation 依赖于
react-native-gesture-handler
库。在 React Navigation 文档的安装部分,它只说使用命令react-native link
创建链接。这对于 iOS 来说已经足够了。但对于 Android,您必须编辑MainActivity.java
文件,以便手势处理程序库可以按预期工作:参考文档: https ://kmagiera.github.io/react-native-gesture-handler/docs/getting-started.html
实际上,React Navigation 文档中没有说明修改任何文件,因为它特定于
react-native-gesture-handler
而不是React Navigation
。我将答案保留在这里,以便对其他人有所帮助。更新: React Navigation 的最新文档解决了这个问题