我正在尝试使用React Native中的contentOffset
为ScrollView
Animated.ValueXY
设置动画。目前,我遇到的问题是,在调用.start()
时,ScrollView
没有动画,contentOffset
保持在{ x: 0, y: 0 }
的初始位置
在文档中,对于ValueXY
,它将使用概述为:
2D用于驱动2D动画的值,例如平移手势
首先,使用ValueXY
动画ScrollView是否合适?我的理解是,在引入此API之前,您无法为ScrollView组件设置动画,但现在可以。
如果这是正确的,这是我的用法:
this.state = {
contentOffset: new Animated.ValueXY(), // inits to {x: 0, y: 0}
}
然后作为一个简单的例子,在componentDidMount
上,.start()
被调用。
Animated.timing(
this.state.contentOffset, {
toValue: { y: 1000, x: 0 },
duration: 5 * 1000,
}
).start();
最后,在render方法中:
<AnimatedScrollView
onScroll={this.handleScroll}
contentOffset={this.state.scroll}
scrollEventThrottle={150}>
<TouchableOpacity onPress={() => this.handleStartPress(false)}>
<Text style={[styles.content, textStyles]} ref='text'>
{content}
</Text>
</TouchableOpacity>
</AnimatedScrollView>