2017-06-01 10 views
0

longPressがリリースされたとき(離れてドラッグするのではなく)を検出する方法を教えてください。 onPressOutは、それがリリースされたときに言うが、指がボタンからドラッグされたときにもトリガーする。TouchableWithoutFeedbackの長時間のリリースの検出

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

答えて

0

本当に行う必要がありますか?

キャンセル-ability-アクションを行う際に、ユーザーが離れて

Facebookのベストプラクティスセクションから自分の指をドラッグして半ばタッチを中止することができるはずです。 https://facebook.github.io/react-native/docs/gesture-responder-system.html#best-practices

場合それでもやる必要がある場合は、View.props.onResponderMoveView.props.onResponderRelease

を使用してカスタムの接触可能なコードを実装する必要があります。docs: https://facebook.github.io/react-native/docs/gesture-responder-system.html#responder-lifecycle

+0

私はそれをしたいと思っています。ユーザーは指をドラッグして長押しをキャンセルすることはできません。 –

0

大量の(画面よりも大きい)pressRetentionOffsetを追加することはどうですか?これにより、リリースしない限りタッチがキャンセルされなくなります。

<TouchableWithoutFeedback 
    ... 
    pressRetentionOffset={{ top: 1000, left: 1000, bottom: 1000, right: 1000 }} 
> 
関連する問題