A vertical page indicator that can temporarily display a gesture indicator to demonstrate how to navigate between pages using one-handed gestures.
OneHandedGestureVerticalPagerSample
@Composable
fun OneHandedGestureVerticalPagerSample() {
val pagerState = rememberPagerState(pageCount = { 10 })
val gestureConfig = rememberOneHandedGestureConfiguration(action = GestureAction.Primary)
val indicatorState = remember { OneHandedGestureIndicatorState() }
VerticalPagerScaffold(
pagerState = pagerState,
pageIndicator = {
OneHandedGestureVerticalPageIndicator(
gestureConfiguration = gestureConfig,
indicatorState = indicatorState,
pagerState = pagerState,
)
},
) {
VerticalPager(
state = pagerState,
modifier =
Modifier.oneHandedGesture(
gestureConfiguration = gestureConfig,
onGestureLabel = "scroll to the next page",
onGestureAvailable = { indicatorState.isIndicatorActive = true },
) {
OneHandedGestureDefaults.scrollToNextPage(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")
}
}
}
}
}
}