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

Класс LazyGridState

Класс LazyGridState описывает прокрутку LazyVerticalGrid и LazyHorizontalGrid. Объект получают из rememberLazyGridState и передают в параметр state. Свойства firstVisibleItemIndex и firstVisibleItemScrollOffset показывают верхнюю видимую ячейку. Перейти к ячейке помогают suspend-методы scrollToItem и animateScrollToItem.

Синтаксис

val gridState = rememberLazyGridState() LazyVerticalGrid(state = gridState, columns = GridCells.Fixed(2)) { }

Методы

Метод Описание
scrollToItem Suspend-метод, который сразу прокручивает к ячейке по индексу.
animateScrollToItem Suspend-метод, который плавно прокручивает к ячейке.

Пример

Давайте прокрутим сетку к последней ячейке:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.items import androidx.compose.foundation.lazy.grid.rememberLazyGridState import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.rememberCoroutineScope import kotlinx.coroutines.launch class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val gridState = rememberLazyGridState() val scope = rememberCoroutineScope() val lines = List(20) { if (it == 19) "12345" else "abcde" } Column { Button( onClick = { scope.launch { gridState.animateScrollToItem(19) } }, ) { Text(text = "12345") } LazyVerticalGrid( state = gridState, columns = GridCells.Fixed(2), ) { items(lines) { line -> Text(text = line) } } } } } }

На экране после нажатия сетка доедет до ячейки со строкой "12345".

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

  • функция rememberLazyGridState,
    которая создаёт LazyGridState
  • класс LazyListState,
    состояние ленивого списка
  • функция LazyVerticalGrid,
    которой передают state
  • класс GridCells,
    который задаёт колонки сетки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить