我从flatList设置了inverted = true,所以我为flatList反转了数据,并为flatList设置了getItemLayout
每次在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});
}
只有在我第一次拉下时它才起作用
这是下拉之前的图像
然后拉下来,就像这样
应该是这样
如果我再次下拉,它总是正确的