我正在开发一个示例应用程序,我将Listview放在一个ArticleList组件中并放置在Scrollview内以滚动整个页面以及滚动Listview时的标题,我试图在列表到达时每次加载十条记录,使用onEndReached方法。但即使列表位于顶层或没有滚动,它也会自动触发onEndReached函数。
<ScrollView>
<View>
<Image style={{width:windowSize.width,height:windowSize.height/8.2,
bottom:0,position:'absolute'}}
source={require('../images/cloud.png')}/>
</View>
<View>
<ArticleList
navigator={this.props.navigator}
userId={this.state.userId}
modalClose={this.modalClose.bind(this)}
sendSpinner={this.getSpinner.bind(this)}
/>
</View>
</ScrollView>
如果Listview没有放在scrollview中,问题就没有了,但是我必须和ListView一起滚动整个页面。任何人都可以指导我如何解决这个问题。最好的解决方案是感谢。
答案 0 :(得分:1)
一般来说,当卷轴处于同一方向(垂直/水平)时,将卷轴放在卷轴内并不是一个好习惯。
将ListView
置于ScrollView
内时,您实际上允许列表无限增长,因为包装滚动视图允许内容保持增长。该列表加载第一批数据,然后&#34;看到&#34;更多空间可用 - 因此在加载整个列表数据之前会加载更多内容。它好像你根本没有使用列表 - 只是一个内容非常大的滚动视图(ListView
没有回收)。
您可以删除ScrollView
容器并使用列表的renderHeader
道具来呈现标题;它将与您的列表一起滚动。或者,您可以切换为使用FlatList
并使用ListHeaderComponent
prop。