tree 05058d9ad071d74b33ea7a6d59b265e42eea580f
parent 8f392c2aa3ead380223929e9f401dfe6d7794a84
author TtangKong <ttankkeo112@gmail.com> 1789429224 +0000
committer GitHub <noreply@github.com> 1789429224 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqqIX5CRC1aQ7uu5UhlAAA1OsQAIkyO3Wo6RG9YfcVuptKMviM
 R4YyrM0C+GbrcQ79jiyYGTmwWDQ4Z6bRjCVNkLzt3Z1KNAufpDef+sW8bXsY0toh
 a4FYDV351w0gHocwgzy3+G1AHobGut52pERQCVVJs6y/zpD1w70z4cR2yU2hfoTp
 oaF534zaG+gADUwrpkhRZBP84K+xbauvv2adJFIY6J6m8EiAORHidL2NV6wksDGC
 26/sAXMz1jJZPZ8fXe1+oyvH/vYKRk1w/jrCmuxhwrEjinsl3KDUfXm+kO8c8IGv
 py7QrReHahKIWc+g9Nqv/Slf5+gEJ57jEuxLlc4D+kIH6VyBnsrzv/EEEhO++yTX
 YHowcCEaqJ6dxysLkrY/G0ovD+G8zhan+eFfvxV6Mk8n8k+SZpRDKJtIY3xcX6KX
 U7CEwSq36gLTx4Rtl5DJ4Ms3pqXEsnKmmrix7ic5Qp8HRh8RwlyCAxsMUDT+ey0k
 aJLtZXrnmN/Zd57K6x96RmDTSrFd+OVCEefUDkaksWSng/btc8x73meJvgT+TwSP
 SlQa8UT57Kegl07vO9akIYGqyYpzEwk31Ttc44RANu17IcGJptnDXU1TiQBAHEpv
 e84xOBY8gtyaUpTGAbiB2QMHshbv4uncLWoRRwkgvb9jUZhba4iHX6hFKR9QwfN/
 l0PvQtEi0uju3piG6Se0
 =bM4S
 -----END PGP SIGNATURE-----
 

Add dedicated rubber band spring for overscroll recovery in BouncingScrollPhysics (#187568)

> [!NOTE] 
> **Relanding** #182426.
>
> Thank you for your review and guidance on the previous PR.
>
> I'm relanding this with the fix for the test failures that caused the
issue before. *(I've updated the regression test to account for the
faster convergence rate of the new physics.)*

Fixes #181752
*(for detailed analysis, measurements, and discussion, please refer to
the original issue.)*

This pull request implements a dedicated “rubber band” physics for
overscroll snap-back in BouncingScrollPhysics on iOS to better match the
native UIScrollView feel.

<img width="1000" alt="546867255-4ad56291-9603-40c1-ae5a-3e319017c3c9"
src="https://github.com/user-attachments/assets/8e72ebff-fb8f-4613-b042-7668db15bcf5"
/>

- - -

> [!NOTE]
> This change adjusts spring constants and simulation behavior
> to improve iOS scroll fidelity.
>
> Given that this change primarily involves physics parameter tuning,
> it may reasonably qualify as test-exempt. However, I am not entirely
> certain what level of automated testing would be considered
appropriate.
>
> Please let me know if additional tests are expected,
> and I am happy to update the PR accordingly.

## 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].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- 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

---------

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
Co-authored-by: Elliott Brooks <21270878+elliette@users.noreply.github.com>