-
Notifications
You must be signed in to change notification settings - Fork 29.3k
Fix dragging scrollbar down causes unexpected behavior when scrollable has a negative minScrollExtent #170331
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
Conversation
…ollable has a negative minScrollExtent
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @greyovo welcome! Thanks for contributing.
This change LGTM, but there is an analyzer failure I can't see, probably due to the current GCP outage. I will circle back on that while I find another reviewer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍 . Thank you for filing this issue and then fixing it!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just one nit
@chunhtai I added an assertion in |
Looks like there is some formatting issue can you run dart formatter on the files? |
Thanks, LGTM |
I ran |
no It is not, do you have outdated pub? try runing |
looks like you may have longer line limit? |
Hmm, another thing might be that it is trying to format with Dart 3.8 instead of 3.7. The framework has not bumped yet. Maybe too try running |
This reverts commit 6c9c6f9.
Thank you all for the kindness help. ❤️ I reverted the wrong commit and updated with a new one. |
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
…e has a negative minScrollExtent (flutter#170331) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> This PR fixed flutter#170246. In the original method for calculating the thumb position based on the offset, the minimum scroll distance was assumed to be 0 by default, which caused the scrollbar offset fraction to be constrained between 0 and 1. However, when minScrollExtent is negative, this range is incorrect. Modifications are listed below: - The valid range has been updated to be between `minScrollExtent / scrollableExtent` and `maxScrollExtent / scrollableExtent`. - Added corresponding test cases for this change. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
… scrollable has a negative minScrollExtent (flutter/flutter#170331)
This PR fixed #170246.
In the original method for calculating the thumb position based on the offset, the minimum scroll distance was assumed to be 0 by default, which caused the scrollbar offset fraction to be constrained between 0 and 1. However, when minScrollExtent is negative, this range is incorrect.
Modifications are listed below:
minScrollExtent / scrollableExtent
andmaxScrollExtent / scrollableExtent
.Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.