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