添加新项目时,如何锁定FlatList的contentOffset y位置

时间:2018-01-09 03:15:39

标签: reactjs listview react-native react-native-flatlist

我有一个包含项目的flatList。向下滚动一下后,一个项目被添加到顶部。这会导致列表向下移动一个单元格。我怎么能避免这个?

1 个答案:

答案 0 :(得分:0)

诀窍是当项目添加到列表

时滚动到Y位置(非动画)
function itemAdded() {
    //...
    const listYOffset = this.state.listYOffset;
    const cellHeight = this.topmostItemHeight; 
    const newYOffset = listYOffset + cellHeight;
    this.listRef.scrollToOffset({ offset: newYOffset, animated: false });
    this.setState({ listYOffset: newYOffset });
}

然后在平面列表中,将此this.topmostItemHeight设置为添加项目的高度。

注意我的代码一次只用于添加一个项目,但基本原理是相同的