我正在与PanResponder一起使用React Native的Animated库。我已经成功创建了一个可以滑动滑动的圆,并且具有三个可以聚焦的区域(圆分为三个区域)。
使用onPanResponderRelease,我制作了一个捕捉动画,捕捉到三个区域之一。
Animated.spring(this.state.pan, { toValue: this.getAmount(dx, this.state.pan.x._offset)}).start();
调用getAmount
方法来定义动画量(其中dx是最后一个手势的距离,正或负):
getAmount = (dx: number, value: number) => { return dx > 0 ? value + 150 : value - 150; };
它可以正确计算偏移量和当前滑动距离。但是,问题在于,经过几次滑动后,偏移量可能为1000+点,并且toValue
每次都将动画从0开始。
有没有一种方法只能将动画从最后一个位置移动到下一个位置?像fromValue: 350
,toValue: 450
之类的东西,不仅限于toValue
,其开头为0。
谢谢。