添加数据时,flatList保持不变

时间:2019-01-07 06:28:40

标签: react-native react-native-flatlist

我从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});
}

只有在我第一次拉下时它才起作用

这是下拉之前的图像

enter image description here

然后拉下来,就像这样

enter image description here

应该是这样

enter image description here

如果我再次下拉,它总是正确的

enter image description here

0 个答案:

没有答案