我有一个文档列表,我想在React Native中使用Shopify Flash列表显示它们,如下图所示。如果一个文件类型是一个视频,我希望它采取整个屏幕的宽度,所有其他文件应显示两行。我尝试将numColumns属性设置为1或2,并修改getColumnFlex。但我无法实现我想要的布局。
Index.js:
<View
style={{flexDirection: 'row',
minHeight: 2,
width: '100%',
}>
<FlashList
data={documentsList}
keyExtractor={(item, index) => index.toString()}
refreshControl={
<RefreshControl refreshing={loadingDocuments} onRefresh={fetchAllDocuments} />
}
renderItem={({ item, index }) => (
<DocumentsList
documentsList={documentsList}
document={item}
index={index}/>
)}
estimatedItemSize={200}
/>
</View>
DocumentList.js
<TouchableOpacity
key={document.id}
style={{
width: document.type === 'video' ? '100%' : ’50%’,
height: document === 'video' ? 280 : 210,
}}>
{/* Code of my component*/}
</TouchableOpacity>
1条答案
按热度按时间xuo3flqw1#
不确定是否可以使用FlashList,但如果可以使用
FlatList
,则可以使用columnWrapperStyle中的flexWrap控制项目 Package 。