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

Функция HorizontalPager

Функция HorizontalPager из пакета androidx.compose.foundation.pager рисует одну страницу на весь контейнер и переключает их свайпом влево и вправо. Состояние хранит параметр state типа PagerState, который создают через rememberPagerState с лямбдой pageCount. Содержимое каждой страницы задают в лямбде pageContent по номеру страницы.

Синтаксис

val pagerState = rememberPagerState(pageCount = { 2 }) HorizontalPager(state = pagerState) { page -> Text("page $page") }

Параметры

Параметр Описание
state Состояние pager. Класс PagerState из rememberPagerState.
pageContent Лямбда с содержимым страницы. Номер страницы передают параметром page.
pageSpacing Зазор между соседними страницами в dp.
userScrollEnabled Если false, свайп между страницами отключён.
reverseLayout Если true, направление листания меняется на противоположное.

Пример

Давайте покажем две страницы с разным текстом:

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 class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val pagerState = rememberPagerState(pageCount = { 2 }) HorizontalPager(state = pagerState) { page -> val text = if (page == 0) "abcde" else "12345" Text(text = text) } } } }

На экране сначала будет текст "abcde", свайп влево покажет "12345".

Пример

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

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 class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val pagerState = rememberPagerState( initialPage = 1, pageCount = { 2 }, ) HorizontalPager(state = pagerState) { page -> val text = if (page == 0) "abcde" else "12345" Text(text = text) } } } }

На экране сразу появится текст "12345" со второй страницы.

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

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