我有一个包含项目的flatList。向下滚动一下后,一个项目被添加到顶部。这会导致列表向下移动一个单元格。我怎么能避免这个?
答案 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
设置为添加项目的高度。
注意我的代码一次只用于添加一个项目,但基本原理是相同的