Я установил инвертированный = true из flatList, поэтому я переворачиваю данные для flatList ,, и я установил getItemLayout для flatList
Каждый раз, когда в обработчик flatList onRefresh я добавляю 12 данных (3 столбца, 4 строки) в данные. Я хочу, чтобы flatList оставался в той же позиции.
Вот что я сделал
componentDidUpdate() {
console.log("componentDidUpdate called");
if (this.state.needScrollFlag) {
this.state.needScrollFlag = false;
console.log("scrollToOffset called");
this.doListScrollToOffset();
}
}
doListScrollToOffset() {
let list = this.refs['movieFlatList'];
let row = this.state.eachTimeLoadCount / this.state.listColumnNum;
let _offset = row * (this.state.itemWidth + 1);
list.scrollToOffset({offset: _offset, animated: false});
}
Это не сработало только в первый раз, когда я опускаю
Вот изображение перед опуском
А после опускания, вот так
Так и должно быть
если я снова потяну вниз, это всегда правильно, как и ожидалось