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

Метод animateScrollToPage

Метод animateScrollToPage класса PagerState работает как scrollToPage, но перелистывает страницы с анимацией. Метод suspend, его вызывают внутри корутины. Номер цели - параметр page, дополнительное смещение - pageOffsetFraction.

Синтаксис

pagerState.animateScrollToPage(page = 1)

Параметры

Параметр Описание
page Номер страницы, к которой листают.
pageOffsetFraction Доля смещения между страницами при остановке анимации.

Пример

Давайте плавно перейдём ко второй странице по кнопке:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState 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 pagerState = rememberPagerState(pageCount = { 2 }) val scope = rememberCoroutineScope() Column { Button( onClick = { scope.launch { pagerState.animateScrollToPage(1) } }, ) { Text(text = "12345") } HorizontalPager(state = pagerState) { page -> val text = if (page == 0) "abcde" else "12345" Text(text = text) } } } } }

На экране pager плавно доедет до страницы "12345".

Пример

Давайте листать VerticalPager анимацией при старте:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.pager.VerticalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val pagerState = rememberPagerState(pageCount = { 2 }) LaunchedEffect(Unit) { pagerState.animateScrollToPage(1) } VerticalPager(state = pagerState) { page -> val text = if (page == 0) "abcde" else "12345" Text(text = text) } } } }

На экране после открытия анимация покажет вторую страницу с текстом "12345".

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

  • метод scrollToPage,
    который переключает страницу без анимации
  • метод animateScrollToItem,
    плавная прокрутка списка
  • функция VerticalPager,
    где тоже используют animateScrollToPage
  • класс PagerState,
    где объявлен animateScrollToPage
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить