Skip to content
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

Fixed issue with Hero Animations and BoxScrollViews in Scaffolds #105654

Merged
merged 13 commits into from Jun 13, 2022

Conversation

youssef-attia
Copy link
Contributor

@youssef-attia youssef-attia commented Jun 8, 2022

Fixed an issue where a jump would happen with Hero animations on mobile when the Hero child was a BoxScrollView and the destination page had a Scaffold with different layout (difference in AppBar, etc).

#99084
Before:
https://user-images.githubusercontent.com/16466991/172736468-d81b7e5a-8bb7-4627-bac6-2632b1e89a74.mov

After:
https://user-images.githubusercontent.com/16466991/172736486-93f08372-e8a0-4d12-b8a1-06ee791cc015.mov

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • All existing and new tests are passing.

@flutter-dashboard flutter-dashboard bot added d: api docs Issues with https://api.flutter.dev/ d: examples Sample code and demos documentation framework flutter/packages/flutter repository. See also f: labels. team Infra upgrades, team productivity, code health, technical debt. See also team: labels. labels Jun 8, 2022
@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

Copy link
Contributor

@LongCatIsLooong LongCatIsLooong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
Copy link
Contributor

@LongCatIsLooong LongCatIsLooong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code LGTM. I feel the documentation could be a bit more specific about what kind of inherited widgets developers should pay attention to.

packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
packages/flutter/lib/src/widgets/heroes.dart Outdated Show resolved Hide resolved
Copy link
Contributor

@LongCatIsLooong LongCatIsLooong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

/// if the [Hero] subtree changes appearance based on an [InheritedWidget] (such
/// as [MediaQuery] or [Theme]), then the hero animation may have discontinuity
/// at the start or the end of the animation because route A and route B provides
/// different such [InheritedWidget]s. Consider providing a custom [flightShuttleBuilder]
Copy link
Contributor

@dkwingsmt dkwingsmt Jun 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this Consider providing a custom [flightShuttleBuilder] to ensure smooth transitions redundant with the last sentence?

@fluttergithubbot fluttergithubbot merged commit dc06326 into flutter:master Jun 13, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jun 14, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 14, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 14, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 14, 2022
@youssef-attia youssef-attia deleted the heroOverlayConstraints branch June 23, 2022 23:40
@youssef-attia youssef-attia linked an issue Jun 23, 2022 that may be closed by this pull request
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 30, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Aug 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
d: api docs Issues with https://api.flutter.dev/ d: examples Sample code and demos framework flutter/packages/flutter repository. See also f: labels. team Infra upgrades, team productivity, code health, technical debt. See also team: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Wrong positioning of GridView in Hero animations
4 participants