[cupertino_ui] Fix platform view sheet transitions - #12565
Merged
auto-submit[bot] merged 5 commits intoSep 9, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces a hasPlatformViews parameter to Cupertino sheet transitions, routes, and helper functions to ensure platform views remain synchronized during transitions by disabling image-filtered scaling. It also includes corresponding unit tests and a changelog entry. A review comment suggests using scrollableBuilder instead of the deprecated pageBuilder in the new tests.
9 tasks
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
victorsanni
reviewed
Aug 26, 2026
victorsanni
self-requested a review
August 31, 2026 17:46
Contributor
Author
|
Here's the subpixel issue I mentioned about when using TransformLayer. Raster.Drift.Comparison.When.Scaling.mp4 |
victorsanni
approved these changes
Sep 1, 2026
Contributor
Author
|
@dkwingsmt It shows one workflow awaiting approval. Is it required? |
victorsanni
pushed a commit
to victorsanni/packages
that referenced
this pull request
Sep 9, 2026
From flutter/flutter#182935 Fixes flutter/flutter#169495 The scale transition in showCupertinoSheet for the underlying route defaulted to FilterQuality.medium, which pushes an implicit `ImageFilterLayer`. Platform views cannot be correctly sampled or transformed by rasterization-based filters. Consequently, they fail to reflect the scale transformation during the transition animation when an `ImageFilterLayer` is present, leading to a broken visual effect where the background scales but the platform view remains at its original size. **Solution:** Added `hasPlatformView` parameter. `false` by default which matches the original behavior. When set to `true`, we use standard `TransformLayer` by setting filterQuality to `null`. ## Pre-Review Checklist
This was referenced Sep 10, 2026
mboetger
pushed a commit
to mboetger/flutter
that referenced
this pull request
Sep 10, 2026
…er#192550) flutter/packages@36e088a...8a35b16 2026-09-10 36861262+QuncCccccc@users.noreply.github.com [material_ui] Migrate M3 buttons template to use new gen_defaults (flutter/packages#12744) 2026-09-09 victorsanniay@gmail.com [cupertino_ui]Add awaitNotRequired to Future-returning callsites without await (flutter/packages#12817) 2026-09-09 victorsanniay@gmail.com [material_ui] Add awaitNotRequired annotation to material_ui (flutter/packages#12622) 2026-09-09 victor.orozco@cloudsufi.com [image_picker] Add native tests for photo-library access and UIImagePicker completion (flutter/packages#12540) 2026-09-09 hashemp206@yahoo.com [material_ui][cupertino_ui] allow page routes to opt out of route semantics - flutter#182556 (flutter/packages#12674) 2026-09-09 victor.orozco@cloudsufi.com [image_picker] Add native tests for pick results, camera access, and presentation (flutter/packages#12539) 2026-09-09 laishereu@gmail.com [cupertino_ui] Fix platform view sheet transitions (flutter/packages#12565) 2026-09-09 150371713+dhc-tech@users.noreply.github.com [camera_android_camerax] Bump cameraxVersion to 1.6.2, remove concurrent-futures workaround (flutter/packages#12698) 2026-09-09 116356835+AbdeMohlbi@users.noreply.github.com `[material_ui]` replace identical checks with equality when dealing with enums (flutter/packages#12633) 2026-09-09 engine-flutter-autoroll@skia.org Roll Flutter from b444e78 to 63b9518 (21 revisions) (flutter/packages#12814) 2026-09-09 116356835+AbdeMohlbi@users.noreply.github.com `[cupertino_ui]` replace identical checks with equality when dealing with enums (flutter/packages#12632) 2026-09-09 tarrinneal@gmail.com [pigeon] add support for multiple swift outputs (flutter/packages#12720) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
From flutter/flutter#182935
Fixes flutter/flutter#169495
The scale transition in showCupertinoSheet for the underlying route defaulted to FilterQuality.medium, which pushes an implicit
ImageFilterLayer.Platform views cannot be correctly sampled or transformed by rasterization-based filters. Consequently, they fail to reflect the scale transformation during the transition animation when an
ImageFilterLayeris present, leading to a broken visual effect where the background scales but the platform view remains at its original size.Solution:
Added
hasPlatformViewparameter.falseby default which matches the original behavior. When set totrue, we use standardTransformLayerby setting filterQuality tonull.Pre-Review Checklist
[shared_preferences]///).