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

Функция rememberLazyGridState

Функция rememberLazyGridState возвращает LazyGridState и сохраняет его между перерисовками. Начальную видимую ячейку задают через initialFirstVisibleItemIndex и initialFirstVisibleItemScrollOffset. Объект передают в state у LazyVerticalGrid или LazyHorizontalGrid.

Синтаксис

val gridState = rememberLazyGridState()

Параметры

Параметр Описание
initialFirstVisibleItemIndex Индекс первой видимой ячейки при первом показе. По умолчанию 0.
initialFirstVisibleItemScrollOffset Смещение первой видимой ячейки в пикселях. По умолчанию 0.

Пример

Давайте привяжем состояние к LazyVerticalGrid:

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.foundation.lazy.grid.rememberLazyGridState import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val gridState = rememberLazyGridState() LazyVerticalGrid( state = gridState, 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.foundation.lazy.grid.rememberLazyGridState import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val gridState = rememberLazyGridState( initialFirstVisibleItemIndex = 2, ) LazyVerticalGrid( state = gridState, columns = GridCells.Fixed(2), ) { item { Text(text = "abcde") } item { Text(text = "12345") } item { Text(text = "abcde") } } } } }

На экране первой видимой станет третья ячейка, предыдущие уйдут за верхний край.

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

  • класс LazyGridState,
    который возвращает rememberLazyGridState
  • функция rememberLazyListState,
    аналог для списка
  • класс GridCells,
    который задаёт columns или rows
  • метод scrollToItem,
    который меняет положение сетки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить