React native ListView未显示所有内容,在底部反弹(IOS)

React native ListView未显示所有内容,在底部反弹(IOS),listview,react-native,Listview,React Native,这是我用来在ListView中显示JSON Api返回的项目列表的代码 render(){ var listHeight = this.state.itemCount ? ((this.state.itemCount) * 115 ) : 0; var itemsHeight = 460; itemsListView = (<ListView bounces={true} style={{height: itemsHeight}} contentCont

这是我用来在ListView中显示JSON Api返回的项目列表的代码

render(){ var listHeight  = this.state.itemCount ? ((this.state.itemCount) * 115 ) : 0;
        var itemsHeight = 460;

        itemsListView = (<ListView bounces={true} style={{height: itemsHeight}} contentContainerStyle={{height: listHeight}}
            dataSource={this.state.dataSource}
            renderRow={this.renderRow.bind(this)} automaticallyAdjustContentInsets={false} initialListSize={4} />); }
render(){var listhheight=this.state.itemCount?((this.state.itemCount)*115):0;
var itemsHeight=460;
itemsListView=();}
但是,ListView组件不允许我查看最后一个或两个项目。(设备横向时修剪更多内容)

renderRow方法返回高度为115的行,如下所示:

return (
<TouchableHighlight onPress={() => this.rowPressed(rowData)}
    style={{height: 115}}>...</TouchableHighlight>
返回(
this.rowPressed(rowData)}
样式={{height:115}}>。。。

设置ListView样式和contentContainerStyle以在两个设备方向上显示所有行的正确方法是什么?

编辑:我注意到您的问题是关于方向更改或处于横向时的问题。此答案可能无法解决该问题。但如果有帮助,我现在就把它留在这里

我在ListView中遇到了类似的问题,底部的项目没有完全显示。我只是将可滚动区域的高度设置为设备高度,并减去顶部标题和其他内容的高度

像这样:

const {
  Dimensions,
  ListView,
  StyleSheet
} = React;

const Viewport = Dimensions.get('window');

...

render() {
  return (
    <ListView ... style={styles.listView} />
  )
}

...

let styles = StyleSheet.create({
  listView: {
    height: Viewport.height
  }
});
const{
尺寸,
ListView,
样式表
}=反应;
const Viewport=Dimensions.get('window');
...
render(){
返回(
)
}
...
让styles=StyleSheet.create({
列表视图:{
高度:Viewport.height
}
});

另外,style
flex:1
可以解决您的问题,所以您可以先尝试一下。

对这个问题的回答并不完美,但可能会有所帮助。我设置了顶部、左侧、右侧,但没有底部,这导致scrollview是全高的,因此它不需要滚动。

嗨,将flex:1设置为所有父组件解决了这个问题。谢谢。文档中没有明确说明,但是ListView和其他ScrollView需要一个高度大于0的父视图。设置“flex:1”是实现这一点的一种方法。