【问题标题】:React Native: is it possible to stop PanResponder event inside onPanResponderMove?React Native:是否可以在 onPanResponderMove 中停止 PanResponder 事件?
【发布时间】:2020-05-13 13:40:19
【问题描述】:

我想添加对 Y 轴可以将视图拖动到其他视图中的距离的限制。 我的 onPanResponderMove 看起来像这样:

onPanResponderMove: (evt: any, gestureEvent: any) => {
  if (y >= 0 && y <= backgroundHeight - 40) {
    Animated.event([null, { dx: pan.x, dy: pan.y }], { useNativeDriver: false })(evt, gestureEvent);
  } else if (y < 0) {
    pan.setValue({ x: pan.x._value, y: 0 });
  } else {
    pan.setValue({ x: pan.x._value, y: backgroundHeight - 40 });
  }
}

所以现在内部视图在滚动进一步限制并返回时仍然会拖动(看起来它在摇晃)。而且我想在达到这些限制时停止拖动,但不知道如何。

如果有其他更好的解决方案可以实施,我将非常感谢您的帮助:)

【问题讨论】:

    标签: javascript reactjs react-native panresponder


    【解决方案1】:

    您是否设法让它按照您想要的方式工作? 我遇到了你的问题来达到同样的效果,并设法做到了:

    onPanResponderMove: (e, gs) => {
            if (gs.moveY < yOffset) {
              Animated.event([null, {dx: 0, dy: pan.y}], {
                useNativeDriver: false,
              })(e, gs);
            }
          },
    

    所以没有else 之后,我的图像在手指出站时保持不变(对我来说是二维的,但看起来是一样的?)。 否则你仍然在设置平移值,所以 View 仍然要求移动不是吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多