LazyVerticalStaggeredGrid смещение последнего элемента в 2 столбцахAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 LazyVerticalStaggeredGrid смещение последнего элемента в 2 столбцах

Сообщение Anonymous »

Я использую LazyVerticalStaggeredGrid в Jetpack Compose и столкнулся с проблемой, когда последний элемент всегда выравнивается по правому краю при использовании двух столбцов, но ведет себя так, как ожидалось (выравнивается по левому краю), когда имеется 3 столбца.
Вот краткое описание проблемы:
  • При использовании двух столбцов последний элемент в сетке всегда выравнивается. к вправо.
  • При использовании трех столбцов последний элемент выравнивается по левому краю, как и ожидалось.
I я не переворачиваю сетку и не хочу изменять структуру элементов. Мне нужно убедиться, что последний элемент в сетке из двух столбцов также выравнивается по левому краю, как и в сетке из трех столбцов.
Вы можете использовать следующий код в качестве пример и вот скриншот проблемы. Это должен быть элемент 3 вверху, 2 слева и 1 справа
Изображение

Код: Выделить всё

@Composable
fun SquareGridScreen(columns: Int) {
val gridState = rememberLazyStaggeredGridState()
val itemsList = (1..7).toList()

LazyVerticalStaggeredGrid(
columns = StaggeredGridCells.Fixed(columns),
modifier = Modifier.fillMaxSize(),
state = gridState,
horizontalArrangement = Arrangement.spacedBy(5.dp),
contentPadding = PaddingValues(8.dp),
) {

item(span = StaggeredGridItemSpan.FullLine) {
Spacer(modifier = Modifier.size(20.dp))
}

itemsIndexed(itemsList) { index, item ->
val itemWidth = Modifier
.fillMaxWidth(1f / columns)
.aspectRatio(1f)
SquareGridItem(modifier = itemWidth)
}
}
}

@Composable
fun SquareGridItem(modifier: Modifier) {

Box(
modifier = modifier
.padding(4.dp)
.background(randomColor()) // Random background for demo purposes
)
}

fun randomColor(): Color {
return Color(Random.nextInt(256), Random.nextInt(256), Random.nextInt(256))
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... -2-columns
Ответить

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

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

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

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

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