2

我正在使用 React Native 的ScrollView方法scrollTo来为滚动视图设置动画。我怎样才能使这个动画加载弹簧,如Animated.spring(不使用第 3 方库)?

4

1 回答 1

2

跟踪滚动位置

<ScrollView
    ref={(ref) => { this.scrollView = ref; }}
    onScroll={(event) => {
        this.scrollY = event.nativeEvent.contentOffset.y;
    }}
    scrollEventThrottle={16}
>

接着

scrollTo(y) {
    if (!this.scrollY) this.scrollY = 0;
    const animatedValue = new Animated.Value(this.scrollY);
    const id = animatedValue.addListener(({ value }) => {
        this.scrollView.scrollTo({ x: 0, y: value, animated: false });
    });
   Animated.spring(animatedValue, { toValue: y }).start(() => { animatedValue.removeListener(id); /* finished callback */ });
}
于 2019-04-18T13:04:38.030 回答