我正在尝试使用react-native-gesture-handler库中的PanGestureHandler组件。
其背后的主要原因是将处理移开了JS线程。
我正在构建的应用程序在Expo中,但是在发现Expo的输出不是特别友好的打字稿之后,我选择直接使用该库。
到目前为止,我似乎无法触发这些事件。本质上,我试图使用平移手势来调用导航更改,但想了解我每次从该库向左或向右滑动时获得的值,以确定要采用的正确路线。
我的出发点很简单:
<PanGestureHandler
onGestureEvent={event => console.log('onGestureEvent', { event })}
onHandlerStateChange={event => console.log('onHandlerStateChange', { event })}
>
<Animated.View style={{ flex: 1, backgroundColor: 'pink' }} />
</PanGestureHandler>
我希望控制台会显示标准事件对象,但是当我输入滑动手势时绝对不会发生任何事情。
这与正在为此项目构建的Android特别相关,我在模拟器和实际设备上都得到了相同的响应。
非常感谢任何指针。
答案 0 :(得分:1)
我已通过以下步骤对其进行了修复
+ import com.facebook.react.ReactActivityDelegate;
+ import com.facebook.react.ReactRootView;
+ import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
+ @Override
+ protected ReactActivityDelegate createReactActivityDelegate() {
+ return new ReactActivityDelegate(this, getMainComponentName()) {
+ @Override
+ protected ReactRootView createRootView() {
+ return new RNGestureHandlerEnabledRootView(MainActivity.this);
+ }
+ };
+ }