【问题标题】:How to achieve a smooth ScrollView animation如何实现流畅的ScrollView动画
【发布时间】:2020-01-28 09:54:48
【问题描述】:

问题

我有一个显示文本的应用程序。它需要在 X 时间内滚动到页面底部。现在它正在工作,但并不顺利。它一点一点地进行,因为我调用该函数每 1000 毫秒滚动一次,将滚动位置设置为 X。

目标

使用 ScrollView 和 Animate 进行平滑滚动。滚动需要持续 1000 毫秒并且需要是线性的,没有缓动。 (因为我将每 1000 毫秒调用一次函数以继续滚动)。还是有更好的选择?

我尝试了什么

我已经尝试了所有方法,包括查找教程和在这里挖掘。有很多关于滚动的东西,但没有什么能帮助我。也许它真的很容易,这就是为什么它什么都没有,我希望它是。

还尝试了“LayoutAnimation.configureNext(LayoutAnimation.Presets.linear);”选项。使用它时,我的屏幕上有很多动画,而不是滚动。

这是我当前的滚动设置,如我的问题中所述:

*设置每 1000 毫秒滚动一次的间隔。

_pixels = amount of pixels to scroll. _steps = amount of steps it will take to get to the bottom using _pixels distance. _distance = total height of the page in pixels. _interval = 1000ms.

setInterval((data) => this.scrollSong(_pixels, _steps, _distance), _interval);

在函数scrollSong 中滚动。 (_scrollTo = 你要滚动到的位置):

this._scrollView.scrollTo({y: _scrollTo, animated: true});

滚动视图。在开始和结束滚动时,scrollSong 间隔被暂停。

<ScrollView ref={(scrollView) => { this._scrollView = scrollView; }} onScrollBeginDrag={this.handleBeginScroll} onScrollEndDrag={this.handleEndScroll}>

我希望你能帮助我。如果您需要任何信息,请告诉我。

【问题讨论】:

    标签: javascript react-native react-native-animatable


    【解决方案1】:
     animationView = () => {
        LayoutAnimation.configureNext(LayoutAnimation.Presets.linear);
      };
    

    调用这个方法来处理滚动动画。

    【讨论】:

    • 我是否需要在某处引用滚动视图才能使用它?它说,“easeInEaseOut”。但我不希望它放松,我希望它是线性的。
    • 您可以在 ScrollView ref 中调用此方法。
    • 不过,我知道你的目标是什么;除了滚动之外,我的屏幕上的一切都在动画。我只希望滚动动画线性 1000 毫秒。对此有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多