🤖 СРОЧНО УБЕРИ lazy списки - используй Grid
Адаптивность - важный аспект удобно UI, но почему-то разработчики продолжа/т по умолчанию фигачить списки, вместо того чтобы подстроиться под ширину. LazyColumn и LazyRow фиксируют один столбец.
Перейдите на LazyVerticalGrid / LazyHorizontalGrid с GridCells.Adaptive. Колонок станет столько, сколько влезает при минимальной ширине ячейки, а их количеством можно гибко управлять через политику GridCells.
LazyVerticalGrid(
columns = GridCells.Adaptive(minSize = 160.dp),
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(12.dp),
verticalArrangement = Arrangement.spacedBy(12.dp),
) {
items(items, key = { it.id }) { item ->
ItemCard(item)
}
}
Всего есть 3 политики:
```kotlin
// сколько влезет, ячейка ≥ minSize
GridCells.Adaptive(minSize = 160.dp)
// всегда ровно N колонок
GridCells.Fixed(count = 2)
// столбцов ровно size, лишнее место не растягивает
GridCells.FixedSize(size = 180.dp)
```
В зависимости от экрана вы уже не будете играться какой Layout выбрать, а уже только менять политику подсчета ячеек
#Android #AndroidDev #Compose #Adaptive
Адаптивность - важный аспект удобно UI, но почему-то разработчики продолжа/т по умолчанию фигачить списки, вместо того чтобы подстроиться под ширину. LazyColumn и LazyRow фиксируют один столбец.
Перейдите на LazyVerticalGrid / LazyHorizontalGrid с GridCells.Adaptive. Колонок станет столько, сколько влезает при минимальной ширине ячейки, а их количеством можно гибко управлять через политику GridCells.
LazyVerticalGrid(
columns = GridCells.Adaptive(minSize = 160.dp),
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(12.dp),
verticalArrangement = Arrangement.spacedBy(12.dp),
) {
items(items, key = { it.id }) { item ->
ItemCard(item)
}
}
Всего есть 3 политики:
```kotlin
// сколько влезет, ячейка ≥ minSize
GridCells.Adaptive(minSize = 160.dp)
// всегда ровно N колонок
GridCells.Fixed(count = 2)
// столбцов ровно size, лишнее место не растягивает
GridCells.FixedSize(size = 180.dp)
```
В зависимости от экрана вы уже не будете играться какой Layout выбрать, а уже только менять политику подсчета ячеек
#Android #AndroidDev #Compose #Adaptive