Improve swipe gesture cancellation in pager layout

This commit is contained in:
MM20
2023-02-26 13:40:02 +01:00
parent 348c969c19
commit b01eb151f8
2 changed files with 9 additions and 1 deletions
@@ -8,7 +8,7 @@ import androidx.compose.ui.geometry.Offset
class GestureDetector {
private var dragStart: Offset? = null
private var currentDrag : Offset? = null
var currentDrag : Offset? = null
var gestureListener: OnGestureListener? = null
@@ -259,6 +259,14 @@ fun PagerScaffold(
val nestedScrollConnection = remember {
object : NestedScrollConnection {
override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
val drag = gestureManager.currentDrag
if (drag != null && (drag.y > 0 || (reverse && drag.x < 0 || !reverse && drag.x > 0))) {
gestureManager.dispatchDrag(available)
return available
}
return super.onPreScroll(available, source)
}
override fun onPostScroll(
consumed: Offset,
available: Offset,