Если отображается условно, то FlatList ScrollToIndex не работает на Android - PullRequest
0 голосов
/ 06 февраля 2019

Я использовал Плоский список scrollToIndex много раз прежде, но я занимаюсь разработкой собственного календаря и столкнулся со следующим вариантом использования, который нарушает метод:

Календарьимеет 2 режима:

ВЫБОР ДНЕЙ: В основном просто матрица сенсорных дней для выбора.
ВЫБОР ГОДА: Прокручиваемый FlatList с годами на выбор.

В определенный момент времени должен отображаться только один из них.
Все отлично работает , за исключением возврата положения прокрутки к выбранному году после переключения режимов вAndroid (в iOS работает как положено, вы можете проверить пример закуски ниже).

Вот небольшой фрагмент кода, показывающий, как я управляю обновлением прокрутки.

componentDidUpdate(_, prevState) {
  if (prevState.mode === TEXT_MODE && this.state.mode === LIST_MODE) {
    console.log(`updated scroll to index ${this.state.selectedItem}`);
    this.itemsScroll.current.scrollToIndex({
      animated: false,
      index: this.state.selectedItem,
      viewPosition: 0.5,
      viewOffset: 0,
    });
  }
}

ЗДЕСЬ - минимальный рабочий пример, иллюстрирующийошибка.

ПРИМЕЧАНИЕ: RN версии 0.57.1.Ошибка не произойдет, если видимость списка не будет изменена.

...