FEDUSS
09/18/2023, 8:18 AMyschimke
09/18/2023, 8:21 AMIn particular, when i switch page with an horizontal swipe, the elements in the page are tappable only after a vertical scroll.Horologist has a ScratchActivity, you can remove the guts of and put as a sample on a PR, so it's easier to share a working repro without just being a standalone code snippet.
yschimke
09/18/2023, 8:21 AMyschimke
09/18/2023, 8:22 AMyschimke
09/18/2023, 8:22 AMHorizontalPager(
modifier = modifier,
state = state,
flingBehavior = HorizontalPagerDefaults.flingParams(state),
) { page ->
ClippedBox(state) {
HierarchicalFocusCoordinator(requiresFocus = { page == state.currentPage }) {
content(page)
}
}
}
yschimke
09/18/2023, 8:22 AMyschimke
09/18/2023, 8:23 AMrememberActiveFocusRequester
then RSB focus will be right.FEDUSS
09/18/2023, 8:48 AMWearNavScaffold(
modifier = Modifier.background(Color.Black),
startDestination = startDestination,
navController = navController,
state = navHostState
) {
composable(route = Section.Navigation.baseRoute) {
val modifier = if(currentPage == 0) {
Modifier.edgeSwipeToDismiss(swipeToDismissBoxState)
} else {
Modifier.unswipeable()
}
PagerScreen(
modifier = modifier,
state = pagerState
) { selectedPage ->
currentPage = pagerState.currentPage
when (selectedPage) {
0 -> {
PageScaffold(
columnState = linesListColumnState,
content = { columnState ->
LinesView(
viewModel = hiltViewModel(),
navController = navController,
columnState = columnState
)
}
)
}
1 -> {
PageScaffold(
columnState = favLinesColumnState,
content = { columnState ->
FavoritesLinesView(
context = mainActivity,
viewModel = hiltViewModel(),
navController = navController,
columnState = columnState
)
}
)
}
2 -> {
PageScaffold(
columnState = mapColumnState,
content = { columnState ->
MapView(
navController = navController,
columnState = columnState
)
}
)
}
3 ->
PageScaffold(
columnState = infoColumnState,
content = { columnState ->
InfoView(
columnState = columnState,
onUpdateDataTapped = onUpdateDataTapped,
onEmailFeedbackTapped = {
openEmail(mainActivity)
}
)
}
)
}
}
}
@OptIn(ExperimentalHorologistApi::class)
@Composable
private fun PageScaffold(
columnState: ScalingLazyColumnState,
content: @Composable (ScalingLazyColumnState) -> Unit
) {
Scaffold(
timeText = { CustomTimeText() },
positionIndicator = {
PositionIndicator(columnState.state)
}) {
content(columnState)
}
}
amoledwatchfaces
09/18/2023, 12:12 PMyschimke
09/18/2023, 12:14 PMrememberActiveFocusRequestor
that should handle that with one lineFEDUSS
09/18/2023, 12:43 PMyschimke
09/18/2023, 1:07 PMyschimke
09/18/2023, 1:10 PMyschimke
09/18/2023, 1:17 PMyschimke
09/18/2023, 1:18 PMFEDUSS
09/18/2023, 1:18 PMyschimke
09/18/2023, 1:18 PMFEDUSS
09/18/2023, 1:18 PMFEDUSS
09/18/2023, 1:19 PMyschimke
09/18/2023, 1:20 PMyschimke
09/18/2023, 1:20 PMyschimke
09/18/2023, 1:20 PMFEDUSS
09/18/2023, 1:22 PMFEDUSS
10/06/2023, 9:26 PMFEDUSS
10/09/2023, 9:28 AMyschimke
10/09/2023, 10:02 AMyschimke
10/09/2023, 10:02 AMFEDUSS
10/09/2023, 5:16 PMyschimke
10/09/2023, 6:18 PMyschimke
10/10/2023, 9:46 AMyschimke
10/10/2023, 9:46 AMTimeText(endCurvedContent = {
curvedText(
"Pager: ${
pagerState.isScrollInProgress
}"
)
})
yschimke
10/10/2023, 9:46 AMyschimke
10/10/2023, 9:47 AMyschimke
10/10/2023, 9:53 AM