首页 > 解决方案 > React Native - 是否可以控制 ScrollView 滚动的速度

问题描述

我看过很多帖子,他们似乎暗示这是不可能的。但是,它们是非常古老的帖子。我很好奇现在这是否可能。

我在我的项目中使用 expo 并参考了以下内容,

https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz

我似乎没有找到作为功能请求的以下拉取请求中建议的持续时间变量。

https://github.com/facebook/react-native/pull/17422

任何帮助将不胜感激。如果这是不可能的任何解决方法?我正在考虑设置一个时间间隔并环绕滚动视图,但我不确定这是否有效。

标签: reactjsreact-nativescrollviewreact-native-androidreact-native-ios

解决方案


我通过 setInterval 调用一个函数来完成这项工作(您可以在其中定义滚动应该移动的逻辑或速度)。

this.interval= setInterval(this.scrollwithSpeed, 100); // Set the function to this timer

scrollwithSpeed() {
  position = this.state.currentPosition + x; // x decides the speed and currentPosition is set to 0 initially.
  this.scrollObject.scrollTo(
      { y: position, animated: true }
  );
  this.setState({ currentPosition: position });
}

确保在完成后调用 clearInterval(this.interval)。


推荐阅读