Repository navigation
[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 done
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
flutter/packages@36e088a...8a35b16 2026-09-10 [email protected] [material_ui] Migrate M3 buttons template to use new gen_defaults (flutter/packages#12744) 2026-09-09 [email protected] [cupertino_ui]Add awaitNotRequired to Future-returning callsites without await (flutter/packages#12817) 2026-09-09 [email protected] [material_ui] Add awaitNotRequired annotation to material_ui (flutter/packages#12622) 2026-09-09 [email protected] [image_picker] Add native tests for photo-library access and UIImagePicker completion (flutter/packages#12540) 2026-09-09 [email protected] [material_ui][cupertino_ui] allow page routes to opt out of route semantics - flutter#182556 (flutter/packages#12674) 2026-09-09 [email protected] [image_picker] Add native tests for pick results, camera access, and presentation (flutter/packages#12539) 2026-09-09 [email protected] [cupertino_ui] Fix platform view sheet transitions (flutter/packages#12565) 2026-09-09 [email protected] [camera_android_camerax] Bump cameraxVersion to 1.6.2, remove concurrent-futures workaround (flutter/packages#12698) 2026-09-09 [email protected] `[material_ui]` replace identical checks with equality when dealing with enums (flutter/packages#12633) 2026-09-09 [email protected] Roll Flutter from b444e78 to 63b9518 (21 revisions) (flutter/packages#12814) 2026-09-09 [email protected] `[cupertino_ui]` replace identical checks with equality when dealing with enums (flutter/packages#12632) 2026-09-09 [email protected] [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 [email protected] 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
6 of 11 tasks
surynets-git
pushed a commit
to yuriityvodar-sudo/official-news
that referenced
this pull request
Oct 30, 2026
… stays and the AI chat shows (#166) TestFlight 55 (Roman, 30 Oct): the AI chat opened over an article showed only the top of its header and its composer. Flutter's sheet shrinks the screen under it, and a sheet under a new sheet, with ScaleTransition and FilterQuality.medium, an image filter iOS's views cannot follow (flutter/flutter#169495). Since #166 the article's glass and the chat's close button stay iOS's under a sheet, so the filter met them. Every sheet now opens through showSheet (core/sheet.dart): Flutter's CupertinoSheetRoute, with the screen under it moved by a copy of Flutter's own delegated transition without the filter, and a covered sheet moved by the same transform from outside Flutter's transition. This is Flutter's own fix (hasPlatformView in cupertino_ui, flutter/packages#12565), which our SDK does not have. The glass stays iOS's; no Flutter stand-in comes back. Tests: no image filter under the app's sheet, the screen and a covered sheet in the same place and size as under Flutter's, the glass still iOS's, showSheet's result, and no showCupertinoSheet left in the app. Co-Authored-By: Claude Opus 5.5 <[email protected]>
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]///).