设置React Native ListView

时间:2016-08-16 21:41:45

标签: react-native

我正在尝试在本机中设置ListView的初始滚动位置。

现在,我正在这样做:

componentDidMount() {
  let i = this.props.images.indexOf(this.props.current);
  if(i != -1) {
    this.refs.listView.scrollTo({ x:i*this.props.width, y:0, animated:false });
  }
}

其中images prop是ListView的数据源,current prop是我想要最初滚动到的位置,width prop是组件的宽度。 (组件水平滚动)。

这样可行,但是在初始渲染和对componentDidMount的调用之间存在延迟,在滚动列表之前给我一个列表末尾的闪存。

有没有办法设置列表的初始滚动位置?或者更好的方法是摆脱闪光灯?

1 个答案:

答案 0 :(得分:4)

在iOS上,您可以使用ScrollView#contentOffset设置ListView的初始滚动位置,该位置继承ScrollView的属性。

如果您正在寻找Android解决方案,那么您调用的ListView.scrollTo方法似乎是一般情况下的最佳选择。

那就是说,如果我正确地解释你的代码示例,你可以使用ListView作为分页的水平列表,也许是在pagingEnabled属性的帮助下?如果是这种情况,在Android上您可能会考虑使用ViewPagerAndroid,并设置initialPage属性。