React Native ListView scrollToEnd它不起作用

时间:2017-02-18 09:17:37

标签: javascript listview react-native

我使用ListView的scrollToEnd,但它不起作用,但它适用于scrollTo。我应该怎么做才能解决它。

enter image description here

enter image description here

4 个答案:

答案 0 :(得分:11)

有一种解决方法,将其包装在setTimeout中,如此:

componentDidMount() {
  setTimeout(() => {
    this.refs.dateList.scrollToEnd();
  }, 50);
}

答案 1 :(得分:8)

试试这个:

<ListView
    ref={ ( ref ) => this.scrollView = ref }
    onContentSizeChange={ () => {        
        this.scrollView.scrollToEnd( { animated: false } )
    } } >
</ListView>

document

答案 2 :(得分:0)

渲染需要时间,因此滚动到结束之前的setTimeout()将起作用。但是,您可以使用onLayout()方法。

export default MyComponent extends React.Component {
  constructor(props) {
    super(props)

    this.scrollToBottom = this.scrollToBottom.bind(this)
  }

  scrollToBottom() {
    this.refs.myView.scrollToEnd()
  }

  render() {
    return {
      <ListView
           onLayout={this.scrollToBottom}
           ref='myView'
           ...
      />
   }
 }

注意:ListView现在已弃用。

答案 3 :(得分:0)

这对我有用。

<Content ref={c => (this.contentComponent = c)}>
....Any code
</Content >

这使您可以像这样使用scrollToPosition(0)函数

this.contentComponent._root.scrollToPosition(0);