3

我想添加对 Y 轴可以将 View 拖入其他 View 的距离的限制。我的 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 });
  }
}

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

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

4

1 回答 1

0

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

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

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

于 2020-05-31T16:26:29.930 回答