[vector_graphics] add imageBuilder property to VectorGraphic#11094
[vector_graphics] add imageBuilder property to VectorGraphic#11094gaaclarke merged 10 commits intoflutter:mainfrom
Conversation
There was a problem hiding this comment.
Code Review
The pull request successfully introduces the imageBuilder property to both SvgPicture and VectorGraphic widgets. This addition completes the builder pattern (placeholder, error, success) for these widgets, allowing developers to wrap the successfully loaded vector graphic with decorations or other widgets only when the image is available. The implementation is consistent across both packages, includes clear documentation, and is well-tested with new test cases in the vector_graphics package. The code follows Flutter best practices for widget builders and maintains backward compatibility.
d91da1f to
3ca0245
Compare
Adds an optional imageBuilder callback that wraps the loaded vector graphic widget, enabling post-load decoration such as borders or gesture detectors without affecting placeholder or error states. Resolves flutter/flutter#182635
3ca0245 to
bcf23ed
Compare
|
LGTM! |
| repository: https://github.com/flutter/packages/tree/main/packages/vector_graphics | ||
| issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+vector_graphics%22 | ||
| version: 1.1.19 | ||
| version: 1.1.20 |
There was a problem hiding this comment.
new exposed type and new parameter to method as a new feature requires the MINOR number to be incremented.
There was a problem hiding this comment.
Thanks. I've bumped the version to 1.2.0 (minor). Also merge upstream.
|
@jtmcdole @domesticmouse do we want to put autosubmit on this? |
…er#185748) flutter/packages@ba80f8f...cde5b36 2026-04-29 stuartmorgan@google.com [file_selector] Switch to Kotlin Pigeon (flutter/packages#11479) 2026-04-29 stuartmorgan@google.com [image_picker] Switch to Kotlin Pigeon (flutter/packages#11504) 2026-04-29 stuartmorgan@google.com [quick_actions] Switch to Kotlin Pigeon (flutter/packages#11507) 2026-04-29 git@reb0.org [pigeon] fix: Apply correct ThrowError success callback (flutter/packages#11585) 2026-04-29 nateshmbhat1@gmail.com [video_player_platform_interface] Add video track selection support (flutter/packages#11474) 2026-04-29 katelovett@google.com Update git ignore for personal/iterating on agent skills and rules (flutter/packages#11600) 2026-04-29 stuartmorgan@google.com [file_selector] Update Windows example for deprecations (flutter/packages#11570) 2026-04-29 git@reb0.org [various] Upgrade googletest to v1.15.2 (flutter/packages#11586) 2026-04-28 engine-flutter-autoroll@skia.org Roll Flutter (stable) from cc0734a to 02085fe (2 revisions) (flutter/packages#11598) 2026-04-28 116356835+AbdeMohlbi@users.noreply.github.com [image_picker] Update documentation of maxDuration to reflect that it only applies to recording (flutter/packages#11417) 2026-04-28 suojae3@gmail.com [vector_graphics] add imageBuilder property to VectorGraphic (flutter/packages#11094) 2026-04-28 engine-flutter-autoroll@skia.org Roll Flutter from 61fca76 to 81bc3d6 (1 revision) (flutter/packages#11597) If this roll has caused a breakage, revert this CL and stop the roller 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
related with flutter/flutter#182635
Adding an
imageBuilderproperty toVectorGraphicallows developers to wrap the successfully loaded vector graphic with decorations or interaction layers (e.g., borders, shadows, gesture detectors) only when the image is available. This completes the builder pattern alongside the existingplaceholderBuilderanderrorBuilder, giving full control over all three rendering states.Changes
VectorGraphicsImageWidgettypedefimageBuilderparameter toVectorGraphicconstructors andcreateCompatVectorGraphicVectorGraphicsImageWidgetfromvector_graphics_compat.dartimageBuilderis called on success and not during placeholder stateTest plan
imageBuilder wraps the loaded vector graphic— verifies the builder is applied on successful loadimageBuilder is not called during placeholder state— verifies the builder is skipped during loading