react-native - 最后一个奇怪的平面列表项目沿着屏幕延伸
问题描述
我在两列中显示了一些带有 Flatlist 的数据项。但是当最后一个地方有一个奇怪的项目时,它会沿着屏幕延伸。我不希望这样,我怎样才能让它像偶数项一样只占用 %50 的屏幕空间?非常感谢。
CategoryGridTile 组件:
return (
<View style={styles.PlaceItem}>
<TouchableCmp onPress={props.onSelect}>
<View>
<View style={{ ...styles.placeRow, ...styles.placeHeader }}>
<ImageBackground
source={{ uri: props.image }}
style={styles.bgImage}
>
<View style={styles.titleContainer}>
<Text style={styles.title} numberOfLines={2}>
{props.title}
</Text>
</View>
</ImageBackground>
</View>
</View>
</TouchableCmp>
</View>
)
}
const styles = StyleSheet.create({
PlaceItem: {
flex: 1,
height: 125,
width: '80%',
backgroundColor: '#f5f5f5',
borderRadius: 5,
overflow: 'hidden',
margin: 6
},
placeRow: {
flexDirection: 'row'
}
})
屏幕:
const renderGridItem = itemData => {
return (
<CategoryGridTile
image={itemData.item.image}
title={itemData.item.title}
onSelect={() => {
props.navigation.navigate({
routeName: 'CategoryPlaces',
params: {
categoryId: itemData.item.title,
locationId: locations
}
})
}}
/>
)
}
return (
<FlatList
keyExtractor={(item, index) => item._id}
data={displayedCategories}
renderItem={renderGridItem}
numColumns={2}
/>
)
解决方案
在 CategoryGridTile 组件中将 PlaceItem flex: 1 更改为 flex: 1/2 解决了这个问题。
推荐阅读
- c - int a=65; printf("%c", a); 在 GCC 中使用 c 语言工作?
- python - 如何为 pyqt4 构建 .exe
- r - 在函数中使用 csv 文件数据集中的“一些”变量来返回数据集中的任何变量
- unity3d - 将图像从 Bytes 加载到 Texture2D 会产生低质量的结果
- ethereum - 为什么松露控制台在用于回调时将函数输出打印到屏幕?
- python-3.x - selenium Python按降序对Web元素列表进行排序
- apache-spark - 如何在 Airflow SPARK 提交操作符中设置 SPARK_MAJOR_VERSION 和 HADOOP_USER_NAME?
- amazon-web-services - AWS Elasticsearch Service:编写此访问策略的正确方法?
- google-cloud-platform - 如何修改后台 Cloud Function 的 Google Cloud Pub/Sub 订阅确认截止日期
- node.js - 将日志发送到远程弹性堆栈实例