@Composable
fun VerticalPagerScaffoldSample() {
AppScaffold {
val pagerState = rememberPagerState(pageCount = { 10 })
VerticalPagerScaffold(pagerState = pagerState) {
VerticalPager(
state = pagerState,
flingBehavior =
PagerDefaults.snapFlingBehavior(
state = pagerState,
maxFlingPages = 1,
snapPositionalThreshold = PagerScaffoldDefaults.HighSnapPositionalThreshold,
snapAnimationSpec = MaterialTheme.motionScheme.defaultSpatialSpec(),
),
rotaryScrollableBehavior = RotaryScrollableDefaults.snapBehavior(pagerState),
) { page ->
AnimatedPage(pageIndex = page, pagerState = pagerState) {
ScreenScaffold {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
Text(text = "Page #$page")
Spacer(modifier = Modifier.height(8.dp))
Text(text = "Swipe up and down")
}
}
}
}
}
}
}
@Composable
fun VerticalPagerScaffoldWithLowSensitivitySample() {
AppScaffold {
val pagerState = rememberPagerState(pageCount = { 3 })
VerticalPagerScaffold(pagerState = pagerState) {
VerticalPager(
state = pagerState,
flingBehavior =
PagerDefaults.snapFlingBehavior(
state = pagerState,
maxFlingPages = 0,
snapPositionalThreshold = PagerScaffoldDefaults.LowSnapPositionalThreshold,
snapAnimationSpec = PagerDefaults.SnapAnimationSpec,
),
rotaryScrollableBehavior =
RotaryScrollableDefaults.snapBehavior(
pagerState = pagerState,
snapSensitivity = RotaryScrollableDefaults.LowSnapSensitivity,
),
) { page ->
AnimatedPage(pageIndex = page, pagerState = pagerState) {
ScreenScaffold {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
Text(text = "Page #$page")
Spacer(modifier = Modifier.height(8.dp))
Text(text = "Swipe up and down")
}
}
}
}
}
}
}