Вот краткое описание проблемы:
- При использовании двух столбцов последний элемент в сетке всегда выравнивается. к вправо.
- При использовании трех столбцов последний элемент выравнивается по левому краю, как и ожидалось.
Вы можете использовать следующий код в качестве пример и вот скриншот проблемы. Это должен быть элемент 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
Мобильная версия