我找到了解决方案。 React Navigation取决于react-native-gesture-handler库。 在React Navigation文档的Installation部分中,它仅说使用命令react-native-gesture-handler创建链接。这对于iOS足够了。 但是对于Android,您必须编辑React Navigation文件,以便手势处理程序库可以按预期工作:
import com.facebook.react.ReactActivity;
+ import com.facebook.react.ReactActivityDelegate;
+ import com.facebook.react.ReactRootView;
+ import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "Example";
}
+ @Override
+ protected ReactActivityDelegate createReactActivityDelegate() {
+ return new ReactActivityDelegate(this, getMainComponentName()) {
+ @Override
+ protected ReactRootView createRootView() {
+ return new RNGestureHandlerEnabledRootView(MainActivity.this);
+ }
+ };
+ }
}
请参阅文档:[https://kmagiera.github.io/react-native-gesture-handler/docs/getting-started.html]
实际上,React Navigation文档中没有任何地方声明要修改任何文件,因为它特定于react-native-gesture-handler而不是React Navigation。我在这里保留答案,以便对他人有所帮助。
更新:React Navigation的最新文档解决了这个问题