object PagerDefaults


Contains the default values used by Pager. These are optimised for Wear.

Summary

Public functions

GestureInclusion
disableLeftEdgeOnFirstPage(
    pagerState: PagerState,
    edgeZoneFraction: Float
)

The default behaviour for when HorizontalPager should consume gestures.

TargetedFlingBehavior
@Composable
snapFlingBehavior(
    state: PagerState,
    maxFlingPages: Int,
    decayAnimationSpec: DecayAnimationSpec<Float>,
    snapAnimationSpec: AnimationSpec<Float>,
    snapPositionalThreshold: @FloatRange(from = 0.0, to = 1.0) Float
)

Default fling behavior for pagers on Wear, snaps at most one page at a time.

Public properties

Int

The default value of beyondViewportPageCount used to specify the number of pages to compose and layout before and after the visible pages.

Float

The default value used to configure the size of the left edge zone in a HorizontalPager.

AnimationSpec<Float>

The default spring animation used for the Pager's snap animation spec - a spring based animation with medium-high stiffness and no bounce.

Public functions

disableLeftEdgeOnFirstPage

Added in 1.5.0-alpha10
fun disableLeftEdgeOnFirstPage(
    pagerState: PagerState,
    edgeZoneFraction: Float = LeftEdgeZoneFraction
): GestureInclusion

The default behaviour for when HorizontalPager should consume gestures. In this implementation of gestureInclusion, scroll events that originate in the left edge of the first page of the Pager (as determined by LeftEdgeZoneFraction) will be ignored. This allows swipe-to-dismiss handlers (if present) to handle the gesture in this region.

Parameters
pagerState: PagerState

The state of the HorizontalPager. Used to determine the current page.

edgeZoneFraction: Float = LeftEdgeZoneFraction

The fraction of the screen width from the left edge where gestures should be ignored on the first page. Defaults to LeftEdgeZoneFraction.

snapFlingBehavior

Added in 1.5.0-alpha10
@Composable
fun snapFlingBehavior(
    state: PagerState,
    maxFlingPages: Int = 1,
    decayAnimationSpec: DecayAnimationSpec<Float> = rememberSplineBasedDecay(),
    snapAnimationSpec: AnimationSpec<Float> = PagerDefaults.SnapAnimationSpec,
    snapPositionalThreshold: @FloatRange(from = 0.0, to = 1.0) Float = 0.5f
): TargetedFlingBehavior

Default fling behavior for pagers on Wear, snaps at most one page at a time.

Parameters
state: PagerState

The PagerState that controls the Pager to which this FlingBehavior will be applied to.

maxFlingPages: Int = 1

the maximum number of pages this Pager is allowed to fling after scrolling is finished and fling has started.

decayAnimationSpec: DecayAnimationSpec<Float> = rememberSplineBasedDecay()

The animation spec used to approach the target offset. When the fling velocity is large enough. Large enough means large enough to naturally decay. For single page snapping this usually never happens since there won't be enough space to run a decay animation.

snapAnimationSpec: AnimationSpec<Float> = PagerDefaults.SnapAnimationSpec

The animation spec used to finally snap to the position. This animation will be often used in 2 cases: 1) There was enough space to an approach animation, the Pager will use snapAnimationSpec in the last step of the animation to settle the page into position. 2) There was not enough space to run the approach animation. By default a Spring animation with no bounciness and high stiffness is used to ensure the Pager settles quickly so that contents are focused and clickable.

snapPositionalThreshold: @FloatRange(from = 0.0, to = 1.0) Float = 0.5f

If the fling has a low velocity (e.g. slow scroll), this fling behavior will use this snap threshold in order to determine if the pager should snap back or move forward. Use a number between 0 and 1 as a fraction of the page size that needs to be scrolled before the Pager considers it should move to the next page. For instance, if snapPositionalThreshold = 0.35, it means if this pager is scrolled with a slow velocity and the Pager scrolls more than 35% of the page size, then will jump to the next page, if not it scrolls back. Note that any fling that has high enough velocity will always move to the next page in the direction of the fling.

Public properties

BeyondViewportPageCount

Added in 1.5.0-alpha10
val BeyondViewportPageCountInt

The default value of beyondViewportPageCount used to specify the number of pages to compose and layout before and after the visible pages. It does not include the pages automatically composed and laid out by the pre-fetcher in the direction of the scroll during scroll events.

LeftEdgeZoneFraction

Added in 1.5.0-alpha10
val LeftEdgeZoneFractionFloat

The default value used to configure the size of the left edge zone in a HorizontalPager. The left edge zone in this case refers to the leftmost edge of the screen, in this region in a Pager it is common to disable scrolling in order for swipe-to-dismiss handlers to take over.

SnapAnimationSpec

Added in 1.5.0-alpha10
val SnapAnimationSpecAnimationSpec<Float>

The default spring animation used for the Pager's snap animation spec - a spring based animation with medium-high stiffness and no bounce.