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

Аналогичный вопрос предлагает прокрутить до rowIndex * rowHeight, но мои строки не одинаковой высоты.

Какие-либо предложения?

4
Gilad Novik 9 Янв 2017 в 13:56

1 ответ

Лучший ответ

Нет простого способа сделать это. Вы можете попробовать использовать событие onLayout и сохранить высоту всех строк. Но если часть строк перед элементом, который вы хотите прокрутить, не была отображена, вы не можете рассчитать смещение. Одно из решений в этой ситуации - визуализировать все элементы сразу. Но может возникнуть проблема с производительностью.
Другой - побитовая прокрутка и вычисление высоты во время выполнения.

Мой совет - измените дизайн вашего UX, чтобы предотвратить эту операцию. Или используйте ScrollView и onLayout, если количество строк не слишком велико.

ОБНОВЛЕНО : FlatList будет быть добавлено в RN 0.43. В нем есть метод scrollToItem .

5
farwayer 25 Мар 2017 в 10:41