我正在使用React Native中的FlatList来呈现一堆叠在一起的项目。
这很好用,我已经成功地使FlatList
本身扩展其高度以填充可用空间,但是当有更多的空间时,我希望FlatList
的项目也能够增长。
使用ScrollView这个简化的伪代码实现起来很简单:
<ScrollView
contentContainerStyle={{
display: "flex",
flexGrow: 1,
}}
>
<Item key={1} style={{ flexGrow: 1 }} />
<Item key={2} style={{ flexGrow: 1 }} />
</ScrollView>
然而,它对于 FlatList (简化伪代码)无效:
<FlatList
contentContainerStyle={{
display: "flex",
flexGrow: 1,
}}
renderItem={({ index }) => <Item key={index} style={{ flexGrow: 1 }} />}
/>
我创建了一个Expo Snack,展示了ScrollView
成功地使元素增长,而FlatList
则无法实现。
关于使父级FlatList
充满整个高度的讨论似乎很多,但我很难找到有关使FlatList
项增长以填充可用FlatList
高度的任何信息。
我需要使用FlatList
,因为我计划使用react-native-draggable-flatlist来实现拖放,并且找不到不使用FlatList
的等效库。
CallRenderer
,VirtualizedList
具有正确的高度和正确的flex样式,DayItem
被设置为增长(并且在使用ScrollView
时运行正常),但在它们之间存在CallRenderer
,它似乎打断了两者之间的flex关系:
任何帮助都非常感激。
FlatList
本身已经在可用高度上增长,只是其中的项目不会增长(尽管父级为flex
,子级为flexGrow: 1
,似乎CallRenderer
破坏了 flex 设置)。 - fredrivett