Row在 Jetpack Compose中使 a 的所有子項的寬度相同的最簡單方法是什么?例如,如果 a 中有 4 個Box元素Row,我希望每個元素Box具有整行寬度的 1/4(減去填充)。
uj5u.com熱心網友回復:
您可以使用修飾符。包含最大寬度并為框添加權重的行,例如
Modifier.fillMaxWidth().weight(1f)
例如,
Row(
modifier = Modifier.fillMaxWidth().padding(5.dp)
) {
for (i in 0..3){
Box(modifier = Modifier.fillMaxWidth().height(100.dp).weight(1f).padding(horizontal = 5.dp).background(Color.Blue))
}
}
uj5u.com熱心網友回復:
在所有元素上使用權重修飾符..Modifier.weight(1)
uj5u.com熱心網友回復:
您可以Modifier.weight(1f)在行的孩子上使用。
一個很好的例子是這 3 個不同長度的文本。
Row(Modifier.padding(4.dp)) {
Text(
text = "boy",
modifier = Modifier
.weight(1f)
.border(width = 1.dp, Color.Blue, shape = RectangleShape)
.padding(4.dp)
)
Spacer(modifier = Modifier.width(4.dp))
Text(
text = "girls",
modifier = Modifier
.weight(1f)
.border(width = 1.dp, Color.Blue, shape = RectangleShape)
.padding(4.dp)
)
Spacer(modifier = Modifier.width(4.dp))
Text(
text = "countries",
modifier = Modifier
.weight(1f)
.border(width = 1.dp, Color.Blue, shape = RectangleShape)
.padding(4.dp)
)
...}
盡管字符數不同,我們只是申請Modifier.weight (1F)使寬度相同。
uj5u.com熱心網友回復:
對 Row使用spacedBy屬性,對子項使用weight修飾符。查看以下示例:
@Preview(showBackground = true)
@Composable
fun EquiRow() {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp)
) {
repeat(4) {
Box(
modifier = Modifier
.weight(1f)
.height(96.dp)
.background(Color.Blue)
) {
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/443871.html
標籤:安卓 安卓布局 android-jetpack-compose
