New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ListView
has one frame jank when releasing finger (PointerUpEvent), no matter how lightweight the content is
#113494
Comments
Reproducible using the code sample provided above. Labeling for further investigation from the team. logs
flutter doctor -v
|
Interestingly, if the animation starts during flutter/packages/flutter/lib/src/scheduler/ticker.dart Lines 173 to 176 in 637e5bc
@goderbauer @Hixie @gspencergoog Do you have any ideas? |
@xu-baolin That 'if' IMHO is because |
The impact of this issue may need to be assessed. Fixing this is bound to break a lot of test cases. |
Consider a classical Flutter case with very light workload. Suppose vsync happens at 0ms, 16.67ms, 33.33ms, etc, and suppose PointerUpEvent is handled at 15ms (i.e. the after-draw-frame period). Then, at 15ms, Flutter calls goBallistic with current offset and velocity. Next, during the 16.67-33.33ms frame, Flutter's ballistic scroll activity handles the first tick (i.e. with elapsed being zero), so it outputs a offset identical to the last pointer offset. Because of this, the output from 16.67-33.33ms frame will has the same offset as that from 0-16.67ms.
Reproducible sample:
Output
The text was updated successfully, but these errors were encountered: