由于某种原因,我不明白,我的ListView一直在触发,即使它位于滚动的顶部,我需要将其包装在ScrollView中,因为当用户在ListView中向下滚动时我希望我的ToolBar隐藏同样。
这是render()方法的内容:
<ScrollView>
<ActivityContainer>
<ListView
onEndReachedThreshold={100}
pageSize={10}
initialListSize={20}
onEndReached={() => {
console.log("fired"); // keeps firing
}}
enableEmptySections={true}/>
</ActivityContainer>
</ScrollView>
还尝试在这样的视图中包装整个事物:
<ScrollView>
<View>
<ActivityContainer>
<ListView
onEndReachedThreshold={100}
pageSize={10}
initialListSize={20}
onEndReached={() => {
console.log("fired"); // keeps firing
}}
enableEmptySections={true}/>
</ActivityContainer>
</View>
</ScrollView>
编辑:我不需要renderHeader,因为我正在尝试滚动ListView顶部的所有内容,它有许多组件和视图以及子视图,而不是列表视图的标题。
答案 0 :(得分:3)
看看是否有效:
<ListView
onEndReachedThreshold={100}
pageSize={10}
renderHeader={() => <ToolbarAndroid />}
initialListSize={20}
onEndReached={() => {
console.log("fired"); // keeps firing
}}
enableEmptySections={true}/>
答案 1 :(得分:0)
目前,我使用的是React Native v44,但尚未尝试使用最新版本。
在你的构造函数中试试这个...
constructor(props) {
this.pagesLoaded = {}
this.currentPage = 1
// etc
}
然后在你的数据提取方法中尝试这个......
getData() {
if (this.pagesLoaded[this.state.currentPage]) return
this.pagesLoaded[this.state.currentPage] = true
// fetch data
}
这种方式当onEndReached
被过度解雇时,无关紧要。这似乎是ListView中的一个错误,因为我已经设置了它周围的维度并且没有在ScrollView
内,所以即使设置getItemLayout
道具,它也只是在组件内发生。