Fix pager gesture triggers

This commit is contained in:
MM20 2023-06-25 14:25:47 +02:00
parent 2da325548b
commit f723ba0e73
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -267,7 +267,7 @@ fun PagerScaffold(
val density = LocalDensity.current
val maxSearchBarOffset = with(density) { 128.dp.toPx() }
val nestedScrollConnection = remember {
val pagerNestedScrollConnection = remember {
object : NestedScrollConnection {
override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
val drag = gestureManager.currentDrag
@ -305,6 +305,10 @@ fun PagerScaffold(
}
}
val innerNestedScrollConnection = remember {
object: NestedScrollConnection {}
}
LaunchedEffect(pagerState.currentPage) {
searchBarOffset.animateTo(0f)
}
@ -342,7 +346,9 @@ fun PagerScaffold(
) {
HorizontalPager(
modifier = Modifier.fillMaxSize(),
modifier = Modifier
.fillMaxSize()
.nestedScroll(pagerNestedScrollConnection),
beyondBoundsPageCount = 1,
reverseLayout = reverse,
state = pagerState,
@ -353,8 +359,7 @@ fun PagerScaffold(
stiffness = Spring.StiffnessMediumLow,
),
),
// FIXME: Workaround https://issuetracker.google.com/issues/276738324
pageNestedScrollConnection = nestedScrollConnection
pageNestedScrollConnection = innerNestedScrollConnection,
) {
when (it) {
0 -> {
@ -568,8 +573,3 @@ fun PagerScaffold(
onHomeButtonPress = handleBackOrHomeEvent,
)
}
private enum class Page {
Widgets,
Search
}