Как заставить Jetpack составить LazyHorizontalGrid для заполнения строка за строкойAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как заставить Jetpack составить LazyHorizontalGrid для заполнения строка за строкой

Сообщение Anonymous »

У меня есть HorizontalGridLayout с двумя строками. Я получаю переменное количество предметов для его заполнения. Когда я получаю большое количество товаров, все в порядке. Но проблемы возникают, когда у меня мало элементов.
Я заставляю сетку иметь только одну строку, когда у меня меньше 6 элементов, и это тоже хорошо работает. Но если у меня 6, я бы хотел, чтобы первая строка заполнялась, а элемент 6 появлялся ниже.
Я знаю, что такое поведение больше похоже на Flow Layout. Но мне также нужна горизонтальная прокрутка для случая, когда у меня много элементов и я не могу иметь более двух строк.
Вот представление того, что я' Я получаю:
Изображение

И что я пытаюсь добиться:
Изображение

Вот мой код для горизонтальной сетки:
@Composable
fun HorizontalGridLayout(
rowNumber: Int,
columnList: List Unit)>,
modifier: Modifier = Modifier,
) {
LazyHorizontalGrid(
modifier = modifier,
rows = GridCells.Fixed(rowNumber),
verticalArrangement = Arrangement.spacedBy(spacerSize),
horizontalArrangement = Arrangement.spacedBy(spacerSize)
) {
repeat(rowNumber) {
item {
Spacer(Modifier.width(horizontalSpacing))
}
}
items(
count = columnList.size,
key = {
columnList[it].hashCode()
}, itemContent = { column ->
Column(
content = columnList[column]
)
if (column < columnList.size - 1) {
Spacer(Modifier.width(spacerSize))
}
}
)
repeat(rowNumber) {
item {
Spacer(Modifier.width(horizontalSpacing))
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... row-by-row
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»