HighLight/ScrollTo - ListView,React-Native上的ScrollView

Gab*_*pes 12 listview scrollview react-native

我正在玩一些反应本地的人,我陷入了一个我无法自己解决的阶段.我有一个项目列表,我想自动滚动到某个项目.

我知道我可以使用ScrollView和contentOffset = {{x:0,y:0}}并设置和偏移,但是它会有点复杂,因为我需要跟踪每个项目的位置,我我想知道是否有一个简单的方法,所以我可以专注于ListView中的特定行.

lib上有这样的东西吗?

jev*_*lio 16

ScrollView不提供滚动到特定列表项的方法 - 但它确实提供了方法scrollTo({x, y, animated}).

如果您的列表项具有相同的高度,则可以使用它们通过调用实现滚动到特定项目scrollTo({y:itemIndex * ROW_HEIGHT}).

为了能够访问ScrollView实例,您需要使用ref属性回调进行捕获:

<ScrollView ref={view => this._scrollView = view} />
Run Code Online (Sandbox Code Playgroud)

并将滚动位置设置在其他位置:

scrollToRow(itemIndex) {
  this._scrollView.scrollTo({y:itemIndex * ROW_HEIGHT});
}
Run Code Online (Sandbox Code Playgroud)

  • 但是如果你的行高度可变呢? (10认同)

Seb*_*ber 8

我发布了react-native-scroll-into-view,这是一个为 React Native ScrollView 启用“scrollIntoView”功能的库。

对于像 SectionList 这样的其他列表,您仍然可以使用其他答案中提到的项目索引。