在本机中有一个scrollTo函数,它以编程方式滚动到给定的x和y坐标,动画与否。
https://facebook.github.io/react-native/docs/scrollview.html#scrollto
scrollTo({x: 0; y: 0; animated: true})
在某些情况下,这很有用,但在某些情况下,我只想向下滚动100像素或向上滚动200像素,而不管屏幕上的位置x,y。有没有办法以反应原生方式以编程方式执行此操作。
答案 0 :(得分:1)
您可以通过执行this answer中提到的操作来跟踪当前的X和Y滚动位置。例如:
<ScrollView
ref={(scrollView) => { this._scrollView = scrollView; }}
onScroll={this.handleScroll}
/>
handleScroll = (event: Object) => {
this.setState({scrollX: event.nativeEvent.contentOffset.x, scrollY: event.nativeEvent.contentOffset.y})
}
然后你可以使用scrollTo和当前位置+/-随意移动你的卷轴。例如:
moveScroll = () => {
this._scrollView.scrollTo({y: this.state.scrollY + 100});
}
请仔细阅读链接的StackOverflow答案,了解onScroll的工作原理。我也没有检查你是否点击了滚动窗口的结尾/开头,所以也检查你的界限。