Как добиться плавной анимации ScrollView - PullRequest
0 голосов
/ 28 января 2020

Issue

У меня есть приложение, отображающее текст. Для этого нужно прокрутить страницу вниз за 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});

ScrollView. В начале и конце прокрутки интервал scrollSong приостановлен.

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

Надеюсь, вы мне поможете. Если вам нужна какая-либо информация, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 28 января 2020
 animationView = () => {
    LayoutAnimation.configureNext(LayoutAnimation.Presets.linear);
  };

Вызовите этот метод для обработки прокрутки с анимацией.

...