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

Метод scrollToPage

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

Синтаксис

pagerState.scrollToPage(page = 1)

Параметры

Параметр Описание
page Номер страницы от 0 до pageCount - 1.
pageOffsetFraction Смещение между страницами от 0 до 1. По умолчанию 0.

Пример

Давайте по кнопке сразу откроем вторую страницу:

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.scrollToPage(1) } }, ) { Text(text = "12345") } HorizontalPager(state = pagerState) { page -> val text = if (page == 0) "abcde" else "12345" Text(text = text) } } } } }

На экране без анимации появится страница с текстом "12345".

Пример

Давайте вызовем scrollToPage из LaunchedEffect:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.pager.HorizontalPager 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 = { 3 }) LaunchedEffect(Unit) { pagerState.scrollToPage(2) } HorizontalPager(state = pagerState) { page -> Text(text = if (page == 2) "12345" else "abcde") } } } }

На экране при открытии сразу будет третья страница с текстом "12345".

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

  • метод animateScrollToPage,
    который листает с анимацией
  • класс PagerState,
    у которого вызывают scrollToPage
  • функция rememberPagerState,
    которая задаёт pageCount
  • функция HorizontalPager,
    к которому привязан pagerState
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить