Status Update
Comments
to...@gmail.com <to...@gmail.com> #2
Ho and I forget to mention but I tried with all combinations of VelocityTrackerAddPointsFix and VelocityTrackerStrategyUseImpulse flags.
It's the same result for the default values for false / false, false / true, true / true and true / false.
le...@google.com <le...@google.com> #3
Hi, could you check if disabling the flag NewNestedFlingPropagationEnabled fixes the issue?
to...@gmail.com <to...@gmail.com> #4
Yes it does fix, did not found that one, it's not mentioned in the changelog and not in the same usual place.
le...@google.com <le...@google.com> #5
Yeah it should be mentioned in aosp/3260391. I'll update the release notes and work on a fix.
to...@gmail.com <to...@gmail.com> #6
Thanks, for the record the second screen does not have nested scrolling directly it only have 2 nestedScroll
modifiers that only override onPostScroll
and always returns Offet.Zero
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
Author: Levi Albuquerque <
Link:
Fix NestedScroll issue with onPostFling method.
Expand for full commit details
Fix NestedScroll issue with onPostFling method.
Fix NestedScroll issue with onPostFling method. We can use the NestedScrollDispatcher to cache the last known nested scroll parent and use that to dispatch the onPostFling event. We also need to make sure that the fling is cancelled when the scrollable node is detached to allow the propagation of nested scroll events.
Fixes: 303224944
Fixes: 371168883
Fixes: 371241898
Relnote: Introduce a fix for nested scrollbles that are removed from the node tree during an ongoing fling. Now these nodes will cancel the fling and correctly send the onPostFling event with the remaining velocity. We're also introducing the flag NewNestedScrollFlingDispatchingEnabled to control the behavior in case of regressions. The flag will be removed before beta.
Test: Added new tests for behavior.
Change-Id: I05c37b5d0ae42d8ed97c014383fe9df3282d61d6
Files:
- M
compose/foundation/foundation/integration-tests/lazy-tests/src/androidTest/kotlin/androidx/compose/foundation/lazy/list/LazyListTest.kt
- M
compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/ScrollableTest.kt
- M
compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/ComposeFoundationFlags.kt
- M
compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt
- M
compose/ui/ui/api/current.txt
- M
compose/ui/ui/api/restricted_current.txt
- M
compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollModifierTest.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/ComposeUiFlags.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollModifier.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollNode.kt
Hash: 48c8610152dfb807c2c3dfa0a69ab0ec69e3bcfc
Date: Tue Sep 24 15:03:36 2024
to...@gmail.com <to...@gmail.com> #8
Can confirm that after that commit the NewNestedFlingPropagationEnabled is no more needed and everything seems to work.
le...@google.com <le...@google.com> #9
Thanks for confirming!
to...@gmail.com <to...@gmail.com> #10
Thank for the fix.
Do you think this can also fix things like
na...@google.com <na...@google.com> #11
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation:1.8.0-alpha04
androidx.compose.foundation:foundation-android:1.8.0-alpha04
androidx.compose.foundation:foundation-jvmstubs:1.8.0-alpha04
androidx.compose.ui:ui:1.8.0-alpha04
androidx.compose.ui:ui-android:1.8.0-alpha04
androidx.compose.ui:ui-jvmstubs:1.8.0-alpha04
androidx.compose.ui:ui-linuxx64stubs:1.8.0-alpha04
Description
Jetpack Compose component(s) used: Many
I'm not sure yet how to reproduce yet but see attached video.
The first screen is a Horizontal Lazy in a vertical one with snapfling.
On first display the fling works in both directions.
Scroll away then scrollback to redraw the Horizontal lazy then the fling does not work to right as you can see the overscroll effect runs all the time.
The second screen is an VerticalLazy on first display it can fling down but have the same issue when fling up.
Moving away then drawing away fixed this.
I can sometimes rarely, break the fling in the opposite direction on the first screen with the Horizontal one.
I'm a little puzzled by the difference between the screens when one works then don't work on redisplay, but the other is the opposite it first don't work then works.