Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
190 of 502 menu
◀ ▶

Функция LazyVerticalGrid

Функция LazyVerticalGrid заполняет экран ячейками в несколько колонок и листает их по вертикали. Число колонок задаёт параметр columns типа GridCells. Ячейки описывают в лямбде content с приёмником LazyGridScope. Положение прокрутки хранит state из rememberLazyGridState.

Синтаксис

LazyVerticalGrid(columns = GridCells.Fixed(2)) { item { Text("abcde") } item { Text("12345") } }

Параметры

Параметр Описание
columns Схема колонок сетки. Класс GridCells, например Fixed или Adaptive.
content Лямбда с ячейками. Приёмник - LazyGridScope.
state Состояние прокрутки сетки. Класс LazyGridState.
verticalArrangement Распределение строк по вертикали. Значение класса Arrangement.
horizontalArrangement Распределение ячеек внутри строки по горизонтали. Значение класса 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.LazyVerticalGrid import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { LazyVerticalGrid(columns = 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.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") } } } } }

На экране сетка сама посчитает число колонок по ширине экрана, ячейки не будут уже 120 dp.

Смотрите также

  • функция LazyHorizontalGrid,
    которая листает сетку по горизонтали
  • класс GridCells,
    который задаёт число колонок или строк
  • класс LazyGridScope,
    где объявлены item и items
  • функция LazyColumn,
    которая строит один столбец без сетки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить