Disable horizontal pager scrolling in widget edit mode
This commit is contained in:
parent
f8b48e9788
commit
d1218e8d2e
@ -465,6 +465,7 @@ fun PagerScaffold(
|
|||||||
pagerState,
|
pagerState,
|
||||||
widgetsScrollState,
|
widgetsScrollState,
|
||||||
reversePager = reverse,
|
reversePager = reverse,
|
||||||
|
disablePager = isWidgetEditMode,
|
||||||
)
|
)
|
||||||
.verticalScroll(widgetsScrollState, enabled = false)
|
.verticalScroll(widgetsScrollState, enabled = false)
|
||||||
.windowInsetsPadding(WindowInsets.safeDrawing)
|
.windowInsetsPadding(WindowInsets.safeDrawing)
|
||||||
@ -649,6 +650,7 @@ fun Modifier.pagerScaffoldScrollHandler(
|
|||||||
scrollableState: ScrollableState,
|
scrollableState: ScrollableState,
|
||||||
reversePager: Boolean = false,
|
reversePager: Boolean = false,
|
||||||
reverseScroll: Boolean = false,
|
reverseScroll: Boolean = false,
|
||||||
|
disablePager: Boolean = false,
|
||||||
) = composed {
|
) = composed {
|
||||||
val scope = rememberCoroutineScope()
|
val scope = rememberCoroutineScope()
|
||||||
val flingBehavior = ScrollableDefaults.flingBehavior()
|
val flingBehavior = ScrollableDefaults.flingBehavior()
|
||||||
@ -656,7 +658,7 @@ fun Modifier.pagerScaffoldScrollHandler(
|
|||||||
val touchSlopSq = LocalViewConfiguration.current.touchSlop.pow(2)
|
val touchSlopSq = LocalViewConfiguration.current.touchSlop.pow(2)
|
||||||
this
|
this
|
||||||
.nestedScroll(DefaultNestedScrollConnection, nestedScrollDispatcher)
|
.nestedScroll(DefaultNestedScrollConnection, nestedScrollDispatcher)
|
||||||
.pointerInput(scrollableState, pagerState, reversePager, reverseScroll) {
|
.pointerInput(scrollableState, pagerState, reversePager, reverseScroll, disablePager) {
|
||||||
val velocityTracker = VelocityTracker()
|
val velocityTracker = VelocityTracker()
|
||||||
val lockScrollThreshold = 200.dp.toPx()
|
val lockScrollThreshold = 200.dp.toPx()
|
||||||
val pagerMultiplier = if (reversePager) 1f else -1f
|
val pagerMultiplier = if (reversePager) 1f else -1f
|
||||||
@ -665,7 +667,7 @@ fun Modifier.pagerScaffoldScrollHandler(
|
|||||||
|
|
||||||
awaitEachGesture {
|
awaitEachGesture {
|
||||||
var overSlop = false
|
var overSlop = false
|
||||||
var lockedInScroll = false
|
var lockedInScroll = disablePager
|
||||||
val initialDown = awaitFirstDown(requireUnconsumed = false, pass = PointerEventPass.Initial)
|
val initialDown = awaitFirstDown(requireUnconsumed = false, pass = PointerEventPass.Initial)
|
||||||
val down = if (scrollableState.isScrollInProgress || pagerState.isScrollInProgress) {
|
val down = if (scrollableState.isScrollInProgress || pagerState.isScrollInProgress) {
|
||||||
overSlop = true
|
overSlop = true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user