我有此代码:
<View style={{flex:1}}>
<ScrollView>
<View style={{flex:0.25,elevation:2,marginVertical:5}}>
<MoviesChild/>
</View>
<View style={{flex:0.75}}>
<FlatList
data={ListOfMovies}
renderItem={this.renderData.bind(this)}
keyExtractor={(x, i) => x.id}
extraData={this.state}
/>
</View>
</ScrollView>
</View>
问题是,我的FlatList的数据出现了,但是我的子组件MoviesChild
却消失了。 Flatlist可能与子组件重叠。有人可以找出我在哪里做错了吗?
答案 0 :(得分:0)
您应该使用flexGrow:1为ScrollView赋予样式
答案 1 :(得分:0)
尝试一下
<View style={{flex:1}}>
<View style={{ flex:0.25,elevation:2,marginVertical:5 }}>
<MoviesChild/>
</View>
<FlatList
style={{flex:0.75}}
data={ListOfMovies}
renderItem={this.renderData.bind(this)}
keyExtractor={(x, i) => x.id}
extraData={this.state}
/>
</View>
答案 2 :(得分:0)
我建议您不要在FlatList
内使用ScrollView
,因为FlatList
滚动本身。因此,为了实现您的目标,请将第一个View
包装在一个函数中,然后将其传递给ListHeaderComponent
的{{1}}属性,如下所示:
FlatList
其中
<View style={{flex:1}}>
<View style={{flex:0.75}}>
<FlatList
data={ListOfMovies}
renderItem={this.renderData.bind(this)}
keyExtractor={(x, i) => x.id}
extraData={this.state}
ListHeaderContainer={this.renderHeader}
/>
</View>
</View>
我希望这可以解决您的问题! 您可以在官方doc
上找到我在说什么