Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
A couple of questions:
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
pr...@google.com <pr...@google.com> #3
Tested on Android 12 Emulator with custom executor, but cannot repro this issue.
Description
If you drag pull refresh, and release / fling downwards with some velocity, overscroll will show on top of the pull refresh animation.
Previously scrollable used to check if overscroll should dispatch (if the list can scroll in either direction) before dispatching preFling and dispatching postFling - sincehttps://android-review.googlesource.com/c/platform/frameworks/support/+/2384227 we now only check before the overall pass, so if preFling / the scrolling fling causes this to change (such as causing the list to refresh and now have no items) then the behaviour change is we now will dispatch postFling to overscroll, and show overscroll because pullRefresh did not consume.
Separately we might want to consider adding that check again and consuming all the velocity before we return from the lambda if the list can no longer scroll (but still calling it for correctness, so overscroll can clean up - before we might only call preFling and then never postFling), but the proper fix for pull refresh is to consume positive velocity if pull refresh is showing.
Theoretically in the future we may want to consider also consuming delta / velocity while pull refresh is showing, but at least for now it makes more sense to remain consistent with SwipeRefreshLayout, which does not do this.