【发布时间】:2019-03-17 20:26:21
【问题描述】:
我正在使用 React Native 中的 PanResponder,并且正在考虑单击 Animated.View 并拖动它的场景。我有以下代码:
this.panResponder = PanResponder.create({
onStartShouldSetPanResponder: () => true,
onMoveShouldSetPanResponder: () => true,
onPanResponderGrant: () => {
this.animatedValue.setOffset({
x: this._value.x,
y: this._value.y,
})
this.animatedValue.setValue({ x: 0, y: 0})
},
onPanResponderMove: Animated.event([
null,
{
dx: this.animatedValue.x,
dy: this.animatedValue.y
}
])
})
我的问题是:
1) 如果我点击 PanResponder 所附加的Animated.View,我知道onStartShouldSetPanResponder: () => true 会导致Animated.View 成为此手势的响应者,但onMoveShouldSetPanResponder: () => true 会导致它“重新成为” ' 在拖动手势的每个后续增量上都有响应者?
2) onPanResponderGrant() 是否仅在我第一次单击 Animated.View 时被调用,还是在拖动手势的每个后续增量时也被调用?
3) 在onPanResponderMove 中,dx 和dy 是从触摸开始的总累积距离,还是与当前拖动手势的单个增量相对应的小增量? IE。如果我在x 方向上拖动Animated.View 总共100px,将dx 通过100px 还是类似于1px 的当前拖动手势增量?
如果你能给我一些关于其中任何一个的见解,那就太好了。
谢谢!
【问题讨论】:
标签: javascript react-native gesture gesture-recognition