Можно ли добавлять элементы к Регенерации ListView для события onTopReached
, аналогично тому, как одно добавляет элементы на событие onEndReached
? В настоящее время, когда я добавляю строки в список, ListView прокручивается вверх.React Native ListView: Prepend Items
Вариант использования: У меня есть приложение с фидером, с которым пользователь может прокручивать вниз. Когда вы переходите от корма, а затем возвращаетесь к нему, я хочу показать последний увиденный ряд наверху. Затем пользователь должен иметь возможность прокручивать либо вверх, чтобы видеть предыдущие строки, которые он прокрутил, и, конечно, загружать новые строки. Предполагая, что я уже вынес ListView, начиная с последней строки видно надуманный пример будет выглядеть примерно так:
_onTopReached() {
this._unshiftRows();
},
_unshiftRows() {
var list = this.props.list; // The entire list
var lastSeenRowIndex = this.props.lastSeenRowIndex;
var prevRows = list.slice(0, i);
this._rows = prevRows.concat(this._rows);
this.setState({
dataSource: this.state.dataSource.cloneWithRows(this._rows)
});
},
В приведенном выше примере я просто предваряя первую часть списка уже оказал последний часть с _onTopReached
стрельба сразу, потому что я уже на вершине. Однако это приводит к тому, что ListView повторно отображает первую строку в верхней части экрана, а не сохраняет предыдущую позицию.
Альтернативой является сохранение y
смещения последней видимой строки и переход к списку ListView в эту позицию. Тем не менее, этот метод требует, чтобы каждая строка до текущей была отображена, что занимает много времени. Я также не смог получить правильное смещение с scrollWithoutAnimationTo
или установив contentOffSet
. Однако он прокручивается до правильной позиции, если я использую scrollTo
или устанавливаю тайм-аут перед вызовом scrollWithoutAnimationTo
и допускаю, чтобы первые строки отображались в среднем времени. Но это не очень приятно.
Вся помощь была бы очень признательна. Благодаря!
Я люблю реагировать на родной язык, но ListView Мне также очень трудно получить (справедливо) простые вещи, как это хорошо работает .. удачи! –
Спасибо Бен. ListView был источником большого разочарования для меня тоже. –
Эй, ты когда-нибудь мог это понять? Я смог заставить его перейти к соответствующей позиции, но на мгновение показывает новый контент, который расстраивает. – chapinkapa