{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}

PagerStateKt

public final class PagerStateKt


Summary

Public methods

static final @NonNull PagerState
@ExperimentalFoundationApi
@Composable
rememberPagerState(int initialPage, float initialPageOffsetFraction)

This method is deprecated. Please use the overload where you can provide a source of truth for the pageCount.

static final @NonNull PagerState
@ExperimentalFoundationApi
@Composable
rememberPagerState(
    int initialPage,
    float initialPageOffsetFraction,
    @NonNull Function0<@NonNull Integer> pageCount
)

Creates and remember a PagerState to be used with a Pager

Public methods

rememberPagerState

@ExperimentalFoundationApi
@Composable
public static final @NonNull PagerState rememberPagerState(int initialPage, float initialPageOffsetFraction)

Creates and remember a PagerState to be used with a Pager

Please refer to the sample to learn how to use this API.

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.material.Text
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

// You can use PagerState to define an initial page
val state = rememberPagerState(initialPage = 5) { 10 }
HorizontalPager(
    modifier = Modifier.fillMaxSize(),
    state = state
) { page ->
    Box(
        modifier = Modifier
            .padding(10.dp)
            .background(Color.Blue)
            .fillMaxWidth()
            .aspectRatio(1f),
        contentAlignment = Alignment.Center
    ) {
        Text(text = page.toString(), fontSize = 32.sp)
    }
}
Parameters
int initialPage

The pager that should be shown first.

float initialPageOffsetFraction

The offset of the initial page as a fraction of the page size. This should vary between -0.5 and 0.5 and indicates how to offset the initial page from the snapped position.

rememberPagerState

@ExperimentalFoundationApi
@Composable
public static final @NonNull PagerState rememberPagerState(
    int initialPage,
    float initialPageOffsetFraction,
    @NonNull Function0<@NonNull Integer> pageCount
)

Creates and remember a PagerState to be used with a Pager

Please refer to the sample to learn how to use this API.

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.material.Text
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

// You can use PagerState to define an initial page
val state = rememberPagerState(initialPage = 5) { 10 }
HorizontalPager(
    modifier = Modifier.fillMaxSize(),
    state = state
) { page ->
    Box(
        modifier = Modifier
            .padding(10.dp)
            .background(Color.Blue)
            .fillMaxWidth()
            .aspectRatio(1f),
        contentAlignment = Alignment.Center
    ) {
        Text(text = page.toString(), fontSize = 32.sp)
    }
}
Parameters
int initialPage

The pager that should be shown first.

float initialPageOffsetFraction

The offset of the initial page as a fraction of the page size. This should vary between -0.5 and 0.5 and indicates how to offset the initial page from the snapped position.

@NonNull Function0<@NonNull Integer> pageCount

The amount of pages this Pager will have.