Jonathan
01/03/2024, 5:33 PMyschimke
01/03/2024, 6:15 PMyschimke
01/03/2024, 6:16 PMJonathan
01/03/2024, 6:28 PMrotaryWithScroll(…)
?yschimke
01/03/2024, 6:33 PMyschimke
01/03/2024, 6:33 PMJonathan
01/03/2024, 6:34 PMval state = rememberPagerState(initialPage = gameTab.ordinal) { GameTab.count }
VerticalPager(
state = state,
modifier = Modifier
.rotaryWithScroll(scrollableState = state)
.fillMaxSize()
.testTag(UiTestingTags.HMOGameScreenPager),
flingBehavior = PagerDefaults.flingBehavior(state = state),
) { page ->
when (GameTab.fromInt(page)) {
GameTab.Batter -> {
HierarchicalFocusCoordinator(requiresFocus = { page == state.currentPage }) {
BatterView(onNavigateUp = onNavigateUp)
}
}
GameTab.Score -> {
HierarchicalFocusCoordinator(requiresFocus = { page == state.currentPage }) {
ScoreView( onNavigateUp = onNavigateUp)
}
}
GameTab.Scoreboard -> {
HierarchicalFocusCoordinator(requiresFocus = { page == state.currentPage }) {
ScoreboardView(
onNavigateUp = onNavigateUp,
onNavigateToEditGame = onNavigateToEditGame
)
}
}
}
}
}
yschimke
01/03/2024, 6:34 PMJonathan
01/03/2024, 6:36 PMPageIndicator
takes a ScrollState
which is a subclass of ScrollableState
. PagerState subclasses ScrollableState
only.yschimke
01/03/2024, 6:38 PMMichail Kulaga
01/03/2024, 6:38 PMJonathan
01/03/2024, 6:39 PMJonathan
01/03/2024, 6:40 PMJonathan
01/03/2024, 6:43 PMHierarchicalFocusCoordinator(_requiresFocus_ = { true }) {}
didn’t get rotary scrolling to work.Michail Kulaga
01/03/2024, 6:46 PMfalse
into internal HierarchicalFocusCoordinator
so that only the top one would have focus?Jonathan
01/03/2024, 6:49 PMMichail Kulaga
01/03/2024, 6:55 PMJonathan
01/03/2024, 6:56 PMyschimke
01/03/2024, 6:56 PMJonathan
01/03/2024, 6:57 PMMichail Kulaga
01/03/2024, 7:00 PMJonathan
01/03/2024, 7:01 PMyschimke
01/03/2024, 7:05 PMyschimke
01/03/2024, 7:05 PMScaffold(positionIndicator = {
PositionIndicator(
state = object : PositionIndicatorState {
override val positionFraction: Float
get() = if (state.pageCount <= 1) {
1f
} else {
(state.currentPage + state.currentPageOffsetFraction) / (state.pageCount - 1)
}
override fun sizeFraction(scrollableContainerSizePx: Float): Float =
1f / state.pageCount
override fun visibility(scrollableContainerSizePx: Float): PositionIndicatorVisibility =
PositionIndicatorVisibility.Show
},
indicatorHeight = 50.dp,
indicatorWidth = 4.dp,
paddingHorizontal = 5.dp,
)
}) {
VerticalPager(
Jonathan
01/03/2024, 7:13 PMyschimke
01/03/2024, 7:21 PMJonathan
01/03/2024, 7:22 PMyschimke
01/03/2024, 7:23 PMJonathan
01/03/2024, 7:25 PMJonathan
01/03/2024, 7:28 PMmarlonlom
01/03/2024, 7:29 PMyschimke
01/03/2024, 7:30 PMJonathan
01/03/2024, 8:28 PMRotaryScrollAdapter
for the Pager but it appears the size returned from PagerState.layoutInfo.pagesize isn’t suitable for RotaryScrollAdapter.averageItemSize
. Do you have an idea when official support will be added?yschimke
01/03/2024, 9:39 PMyschimke
01/04/2024, 9:01 AMMichail Kulaga
01/04/2024, 9:43 AMyschimke
01/04/2024, 10:32 AMyschimke
01/04/2024, 10:33 AMyschimke
01/04/2024, 12:52 PMyschimke
01/04/2024, 3:23 PMJonathan
01/04/2024, 3:29 PMJonathan
01/04/2024, 3:47 PMAppScaffold
, ScreenScaffold
. I have a dependency on horologist-compose-layout.yschimke
01/04/2024, 6:24 PMyschimke
01/04/2024, 6:25 PMJonathan
01/05/2024, 3:44 PMyschimke
01/08/2024, 9:24 AMJonathan
01/08/2024, 1:55 PMJonathan
01/11/2024, 9:50 PM