我已创建PanResponder以垂直移动Animated.View
。当我从原始位置移动它时,它可以正常工作,但是一旦我再次移动它,它就会回到其原始位置,然后相对于触摸移动。PanResponder在第二次拖动时将Animated.View捕捉回原始位置
我正在将响应者直接打开到Animated.View
,这是否会造成这种行为?
这是我如何定义我PanResponder:
this.state = {
drag: new Animated.ValueXY()
}
this._responder = PanResponder.create({
onStartShouldSetPanResponder:() => true,
onPanResponderMove: Animated.event([null, {
dy: this.state.drag.y
}]),
onPanResponderRelease: (e, coords) => {
...
}
})
和应用响应我的Animated.View
:
<Animated.View {...this._responder.panHandlers} style={this.state.drag.getLayout()}>
// children go here
</Animated.View>
感谢
谢谢您花时间回复这个好的答案,并正确解释发生了什么。我最终使用与您提供的方法相似的方法设法解决了这个问题。 – JmJ