我被这个示例代码更容易解释的东西所困扰
import React from "react";
import { StyleSheet, View } from "react-native";
function App() {
return (
<View style={styles.container}>
<View style={styles.row}>
<View style={styles.square} />
<View style={styles.square} />
<View style={styles.square} />
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "white"
},
row: {
height: 100,
flexDirection: "row",
backgroundColor: "red",
},
square: {
aspectRatio: 1,
margin: 20,
backgroundColor: "green",
}
});
export default App;
目前,我只是在固定高度为 100 的红色行内绘制 3 个绿色方块。
在每台设备上,我可能都会有这 3 个方块,然后是右侧的一些“可用空间”。(图片1)
如果行高增加,右侧的“可用空间”会减少,直到方块超过可用宽度。(图二)
现在,我不能让这 3 个方块自动适应页面,当行高足够大时,只在它们的底部留下“可用空间”。(图三和四)
我可以玩onLayout道具,或者我可以对元素大小进行某种数学运算,但我想保持简单,并尝试了解是否可以使用 flexbox 以正确的方式解决问题。
几张图片可以更好地解释这个场景:
上面它是如何工作的就知道了。图1没问题。图2是我不想要的。当行高不足以包含正方形时,它应该如下图所示。
在这里提琴