Функция LazyHorizontalGrid
Функция LazyHorizontalGrid заполняет экран
ячейками в несколько строк и листает их по горизонтали.
Число строк задаёт параметр rows
типа
GridCells.
Ячейки описывают в лямбде content
с приёмником
LazyGridScope.
Положение прокрутки хранит state
из
rememberLazyGridState.
Синтаксис
LazyHorizontalGrid(rows = GridCells.Fixed(2)) {
item { Text("abcde") }
item { Text("12345") }
}
Параметры
| Параметр | Описание |
|---|---|
rows |
Схема строк сетки. Класс
GridCells,
например Fixed или Adaptive.
|
content |
Лямбда с ячейками. Приёмник -
LazyGridScope.
|
state |
Состояние прокрутки сетки. Класс
LazyGridState.
|
horizontalArrangement |
Распределение столбцов по горизонтали.
Значение класса
Arrangement.
|
verticalArrangement |
Распределение ячеек внутри столбца по вертикали.
Значение класса
Arrangement.
|
userScrollEnabled |
Если false, жест прокрутки отключён.
|
Пример
Давайте покажем две ячейки в двух строках:
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
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LazyHorizontalGrid(rows = GridCells.Fixed(2)) {
item { Text(text = "abcde") }
item { Text(text = "12345") }
}
}
}
}
На экране два текста встанут в один столбец, по одному в каждой строке сетки.
Пример
Давайте добавим третью ячейку и прокрутим сетку вбок:
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
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LazyHorizontalGrid(rows = GridCells.Fixed(1)) {
item { Text(text = "abcde") }
item { Text(text = "12345") }
item { Text(text = "abcde") }
}
}
}
}
На экране в одной строке поместятся не все тексты, лишние ячейки можно будет увидеть горизонтальной прокруткой.
Смотрите также
-
функция
LazyVerticalGrid,
которая листает сетку по вертикали -
класс
GridCells,
который задаёт число строк или колонок -
функция
LazyRow,
которая строит один ряд без сетки -
класс
LazyGridScope,
где объявлены item и items