滚动到X,Y方向给出反应原生scrollview中的像素数

时间:2017-02-18 13:53:19

标签: reactjs react-native scrollview

在本机中有一个scrollTo函数,它以编程方式滚动到给定的x和y坐标,动画与否。

https://facebook.github.io/react-native/docs/scrollview.html#scrollto

scrollTo({x: 0; y: 0; animated: true})

在某些情况下,这很有用,但在某些情况下,我只想向下滚动100像素或向上滚动200像素,而不管屏幕上的位置x,y。有没有办法以反应原生方式以编程方式执行此操作。

1 个答案:

答案 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的工作原理。我也没有检查你是否点击了滚动窗口的结尾/开头,所以也检查你的界限。