将本地动画onPanResponderRelease反应为Animated.spring

时间:2019-05-21 10:59:36

标签: react-native react-native-animatable

发布后,我试图在View上获得流畅的动画。

让我解释一下,当我按View并将其在Y轴上拖动然后释放时,它应该到达指定位置并且确实可以,但是问题是如果我拖动动画的速度过快,它会触发弹簧跳动动画到指定位置(当我缓慢执行此操作时,它可以正常运行)。

componentWillMount() {
        this.panGesture = PanResponder.create({
            onMoveShouldSetPanResponder: (evt, gestureState) => {
                return (
                    this.isValid(gestureState.dx, gestureState.dy) &&
                    this.state.isTouched
                );
            },
            onPanResponderMove: (evt, gestureState) => {
                this.moveView(gestureState);
            },
            onPanResponderRelease: (evt, gestureState) => {
                this.moveFinished(gestureState);
            }
        });
    }

...

moveFinished(gestureState) {
     const position = new Animated.Value(gestureState.moveY);
     Animated.spring(position, {
        toValue: this.state.endPosition,
        useNativeDriver: true,
        velocity: gestureState.vy
     }).start();
}

我想做的是能够快速拖动,以便“动画”从panGesture持续到弹簧。

我尝试了几件事,但我总是回到这一点,我似乎无法弄清楚。

0 个答案:

没有答案