检测TouchableWithoutFeedback长按发布

时间:2017-06-01 07:51:00

标签: ios react-native

如何检测何时释放longPress(而不是拖走)。 onPressOut确实说它何时被释放,但是当手指被拖离按钮时它也会触发。

  <TouchableWithoutFeedback
    onLongPress={() => this.onLongPress()}
    onPressOut={() => this.onCancel()}
    onPressIn={() => this.onHover()}
    onPress={() => this.onPress()}
  >

2 个答案:

答案 0 :(得分:1)

如何添加大量(大于屏幕)pressRetentionOffset?这可以防止触摸取消,除非你释放。

<TouchableWithoutFeedback
    ...
    pressRetentionOffset={{ top: 1000, left: 1000, bottom: 1000, right: 1000 }}
>

答案 1 :(得分:0)

你确定你应该这样做吗?

  

取消能力 - 在进行动作时,用户应该可以通过拖动手指来触摸中途

来自Facebook的最佳实践部分: https://facebook.github.io/react-native/docs/gesture-responder-system.html#best-practices

如果您仍然需要这样做,则可能需要使用View.props.onResponderMoveView.props.onResponderRelease

实现自定义可触摸

查看文档: https://facebook.github.io/react-native/docs/gesture-responder-system.html#responder-lifecycle