React Native ListView:如何滚动到特定行

Ben*_*ton 5 react-native

在NativeiOS中,您可以使用以下命令将UITableView滚动到特定的UITableViewCell:

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:87 inSection:0] 
         atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
Run Code Online (Sandbox Code Playgroud)

..或类似的.

例如,如果ListView持有100个项目,我想滚动使第87个项目可见.

看看React Native ListView文档,没有什么明显的.

有没有人设法实现这一目标?我意识到ListView没有包装UITableView所以我们不能只公开该方法.

编辑:看起来有一些支持这是在0.19-rc版本,检查这个https://github.com/facebook/react-native/releases

https://github.com/facebook/react-native/commit/33e05a11f00d1455f39b6dfef1c76c4130df02e5

jam*_*ang 4

使用ScrollViewwithcontentOffset={{ x: offsetX, y: offsetY }}并根据您要滚动到的行计算偏移变量。

  • @BenClayton我相信你仍然可以使用`ListView`,只需设置`renderScrollableComponent`或`renderScrollComponent`(取决于你使用的RN版本)来返回一个`ScrollView`和`contentOffset`(尚未测试过)具体情况尚未确定)。 (2认同)
  • 现在,如果高度或宽度行可变,则无法完成。我觉得这是 React Native 中一个很大的丢失功能。我希望他们很快就会意识到滚动到某个 rowID 是如此重要。在我的项目中,做了一个解决方法,但我不喜欢它,所以...... (2认同)