React Native ListView onEndReached donds';我没打电话
我想实现无限滚动,所以我在我的ListView标签中这样做React Native ListView onEndReached donds';我没打电话,listview,react-native,Listview,React Native,我想实现无限滚动,所以我在我的ListView标签中这样做 renderRow(data){ return ( <CardSection> <Text> {data.id} </Text> </CardSection> ); } <ListView dataSource={this.dataSource}
renderRow(data){
return (
<CardSection>
<Text>
{data.id}
</Text>
</CardSection>
);
}
<ListView
dataSource={this.dataSource}
renderRow={this.renderRow}
onEndReached = {this.loadMoreNews.bind(this)}
pageSize = {5}
/>
renderRow(数据){
返回(
{data.id}
);
}
我在loadMoreNews()和componentWillMount中调用的每个获取操作都会得到5个数据。因为前5个数据并没有填满整个屏幕,我希望ONEDREACHED会被自动调用,因为它已经在ListView的末尾了,但它没有
我尝试将renderRow中的文本标记样式设置为
renderRow(data){
return (
<CardSection>
<Text style={{height:100}}>
{data.id}
</Text>
</CardSection>
);
}
renderRow(数据){
返回(
{data.id}
);
}
我想怎么做就怎么做。如果我的应用程序在宽屏设备上运行,恐怕我的renderRow无法填满整个屏幕
是ListView的行为还是我遗漏了什么?解决办法是什么?我真的不想强迫我的组件太大,所以它总是占据整个屏幕
onEndReached?:函数
在呈现所有行并滚动列表时调用
在底部的一至三分之一范围内。本机滚动事件
提供
除非用户滑动listview(宽屏幕场景),否则不会自动调用它
您可能需要在不到达屏幕底部的情况下触发OneDreached
onEndReachedThreshold:编号
调用onEndReached的阈值(虚拟,非物理)
或者,当您的屏幕没有被行完全覆盖时,您可以手动调用loadMoreNews()
。为此,只需测量CardSection组件的高度,并将尺寸分割。获取('window')。高度
到该值,即可获得可放入当前屏幕的CardSection组件的编号
如果您的行没有可以知道的固定高度,您可以使用函数。您可以将组件contentsize与设备的高度进行比较,并调用loadMoreNews fn
const deviceHeight = Dimensions.get('window').height;
<ListView
dataSource={this.dataSource}
renderRow={this.renderRow}
onLayout={(event) => {
var layout = event.nativeEvent.layout;
if(layout.height < deviceHeight) this.loadMoreNews()
}}
onEndReached = {this.loadMoreNews.bind(this)}
pageSize = {5}
/>
const deviceHeight=Dimensions.get('window').height;
{
var布局=event.nativeEvent.layout;
如果(layout.height