我创建了一个 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>
谢谢