react-native SectionList如何通过使用scrollToLocation来scrollToTop?

时间:2018-09-17 03:17:42

标签: react-native

使用此功能只能滚动至item或itemTitle,但找不到滚动至顶部的方法。 我可以在下面使用5个参数。

this.sectionListRef.scrollToLocation({
  sectionIndex: 0,
  itemIndex: -1,
  viewPosition: 1,
  viewOffset: 0,
  animated: true,
});

谢谢。

2 个答案:

答案 0 :(得分:1)

我无法通过使用SectionList找到任何torollToTop的api或函数。我只能计算viewOffset来scrollToTop。

this.sectionHeaderHeight是sectionListHeader的高度(e.native.layout.height)

this.sectionListRef.scrollToLocation({
  sectionIndex: 0,
  itemIndex: 0,
  viewPosition: 0,
  viewOffset: this.sectionHeaderHeight,
  animated: true,
});

答案 1 :(得分:0)

添加一个功能以滚动到顶部:

scrollToTop() {
    this.scroll.scrollTo({x:0, y:0, animated: true})
}

在您的ScrollView中添加:

<ScrollView
    ref={(f) => { this.scroll = f }}
>
.......
</ScrollView>

在那里,您可以添加一个调用scrollToTop函数的浮动按钮。或者,您甚至可以在设置状态或其他条件后使用它。例如:

setSomeState(something) {
    this.setState({ something }, () => this.scroll.scrollTo({x:0, y:0, animated: true }));
}