[*] Если присутствует только один элемент, заполните родительскую ширину.
Если 2, разделите ширину в равной степени. Ширина.
Код: Выделить всё
@Composable
fun SingleBox(
modifier: Modifier = Modifier,
) {
Column(
modifier = modifier,
) {
val size = 1
LazyRow {
items(size) {
Box(
modifier = Modifier
.height(100.dp)
.defaultMinSize(minWidth = 100.dp)
.fillParentMaxWidth(1f / size)
.background(Color.Red)
.border(
BorderStroke(
2.dp,
Color.White,
),
),
)
}
}
}
}
/>
Но при попытке выйти за пределы и указать размер , чтобы быть 10, мы получаем что -то довольно странное. src = "https://i.sstatic.net/3gy9y2dl.png"/>
Похоже, что минимальный размер применяется для коробки , но ограничения, в которых можно размещать в блоке Modifier. Сначала подумал о заказе модификатора и переместил фон и границу вверх по цепочке.
Код: Выделить всё
Box(
modifier = Modifier
.height(100.dp)
.border(
BorderStroke(
2.dp,
Color.White,
),
)
.background(Color.Red)
.defaultMinSize(minWidth = 100.dp)
.fillParentMaxWidth(1f / size),
)
И это, казалось, решает проблему ... но теперь пусть положит что -то в коробку . Например, в другом поле : d.
Код: Выделить всё
Box(
modifier = Modifier
.height(100.dp)
.border(
BorderStroke(
2.dp,
Color.White,
),
)
.background(Color.Red)
.defaultMinSize(minWidth = 100.dp)
.fillParentMaxWidth(1f / size),
) {
Box(
modifier = Modifier
.background(Color.Black)
.border(
BorderStroke(
2.dp,
Color.White,
),
)
.fillMaxSize()
)
}
Похоже, что размер, сообщаемый дочерним коробку , является рассчитанным с помощью FillParentMaxWidth Modifier. что -нибудь здесь? Это правильное поведение?
Код: Выделить всё
Box(
Modifier
.defaultMinSize(100.dp)
.height(100.dp),
) {
Spacer(
modifier = Modifier
.fillParentMaxWidth(1f / size)
)
Box(
modifier = Modifier
.background(Color.Red)
.border(
BorderStroke(
2.dp,
Color.White,
),
)
.matchParentSize(),
)
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ultminsize
Мобильная версия