deviant
08/17/2022, 2:13 PMdeviant
08/18/2022, 9:07 AMfun Modifier.edgeBypass(scrollEnabled: MutableState<Boolean>): Modifier = then(Modifier.pointerInput(scrollEnabled) {
val drawerTapArea = 48.dp.toPx()
forEachGesture {
awaitPointerEventScope {
val down = awaitFirstDown(false)
scrollEnabled.value = down.position.x >= drawerTapArea
val up = waitForUpOrCancellation()
scrollEnabled.value = true
}
}
})
it modifies the boolean state when user taps on left edge. then i pass this state to the pager's userScrollEnabled
. maybe a bit ugly but it works as expected.