Метод Adaptive
Метод Adaptive класса
GridCells
ставит столько колонок или строк,
сколько помещается при ширине или высоте
не меньше minSize.
На узком экране дорожек будет меньше,
на широком - больше.
Передают в columns
или rows
у ленивой сетки.
Синтаксис
GridCells.Adaptive(minSize = 128.dp)
Параметры
| Параметр | Описание |
|---|---|
minSize |
Минимальная ширина колонки или высота строки в dp. Ячейка может стать шире, если остаётся свободное место. |
Пример
Давайте построим сетку с минимальной шириной колонки 120 dp:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.material3.Text
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LazyVerticalGrid(
columns = GridCells.Adaptive(minSize = 120.dp),
) {
item { Text(text = "abcde") }
item { Text(text = "12345") }
item { Text(text = "abcde") }
}
}
}
}
На экране число колонок зависит от ширины устройства,
каждая не уже 120 dp.
Пример
Давайте применим Adaptive к строкам горизонтальной сетки:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid
import androidx.compose.material3.Text
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LazyHorizontalGrid(
rows = GridCells.Adaptive(minSize = 48.dp),
) {
item { Text(text = "abcde") }
item { Text(text = "12345") }
}
}
}
}
На экране сетка подберёт число строк по высоте,
ячейки не будут ниже 48 dp.
Смотрите также
-
метод
Fixed,
который задаёт постоянное число дорожек -
класс
GridCells,
где объявлен Adaptive -
функция
LazyVerticalGrid,
куда передают Adaptive в columns -
функция
LazyHorizontalGrid,
куда передают Adaptive в rows