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

Метод animateScrollToItem

Метод animateScrollToItem класса LazyGridState работает как scrollToItem, но с анимацией сдвига. Метод suspend, его вызывают внутри корутины. Индекс ячейки - параметр index, смещение - scrollOffset.

Синтаксис

gridState.animateScrollToItem(index = 8)

Параметры

Параметр Описание
index Индекс ячейки, к которой прокручивают.
scrollOffset Смещение ячейки от начала viewport в пикселях.

Пример

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

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(18) { if (it == 17) "12345" else "abcde" } Column { Button( onClick = { scope.launch { gridState.animateScrollToItem(17) } }, ) { Text(text = "12345") } LazyVerticalGrid( state = gridState, columns = GridCells.Fixed(2), ) { items(lines) { line -> Text(text = line) } } } } } }

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

Пример

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

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.items import androidx.compose.foundation.lazy.grid.rememberLazyGridState import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val gridState = rememberLazyGridState() val lines = List(14) { if (it == 10) "12345" else "abcde" } LaunchedEffect(Unit) { gridState.animateScrollToItem(10) } LazyVerticalGrid( state = gridState, columns = GridCells.Fixed(2), ) { items(lines) { line -> Text(text = line) } } } } }

На экране анимация остановится на ячейке со строкой "12345".

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить