javascript - 大屏幕上的不同 FlatList
问题描述
我想在小型和大型设备上拥有相同风格的 FlatList。
在较小的屏幕上,我在此列表中的项目之间有完全白色的颜色,但在较大的设备上,我看不到这种白色。
如何解决?
我的平面列表
const placeList = props => {
return (
<FlatList
style={styles.listContainer}
data={props.placesList}
renderItem={(info) => (
<ListItem
placeName={info.item.name}
placeImage={info.item.image}
onItemPressed={() =>
props.onItemSelected(info.item.key)}
/>
)}
/>
);
};
const styles = StyleSheet.create({
listContainer: {
width: "100%",
}
});
这里是我的 ListItem
const listItem = (props) => (
<TouchableOpacity onPress={props.onItemPressed}>
<View style={styles.listItem}>
<Image
resizeMode="contain"
source={props.placeImage}
style={styles.placeImage}
/>
<Text>{props.placeName}</Text>
</View>
</TouchableOpacity>
);
const styles = StyleSheet.create({
listItem: {
width: "100%",
marginBottom: 5,
padding: 10,
backgroundColor: "#eee",
flexDirection: "row",
alignItems: "center"
},
placeImage: {
marginRight: 8,
height: 30,
width: 30
}
});
这就是它的外观(5,10' vs 7'):
解决方案
尝试维度道具,就像width:dimension.get('screen or window ').Width
您可以使用相同的属性作为高度,只需更改道具高度或宽度,U 也可以width:dimension.get('screen or window ').Width/2
像这样添加.. U 可以自定义,并且该视图可以在不同屏幕上自行调整....
推荐阅读
- java - iText 7:未找到外部参照小节
- node.js - javascrpit 中的 Array.push 用最后一个推送的值替换所有预先存在的值,保持长度不变
- java - 使用 FirestoreRecyclerView 加载数据会使应用程序崩溃
- sql-server - SQL 仅将文件从驱动器读取到字节数组中
- javascript - 尝试使用 `gatsby-source-mongodb` 从 MongoDB 获取数据到 Gatsby
- tensorflow - TensorFlow Estimator InvalidArgumentError
- javascript - SPA .netCore Angular 5:未捕获的参考错误:未定义 jQuery
- c++ - 从 mozilla.rsa 文件中解析插件 ID
- php - php 7.1 更新后显示 json_encoded 对象不起作用
- docker - Docker 容器中的 Runit 不传递环境变量