diff --git a/mobile/lib/widgets/photo_view/src/photo_view_wrappers.dart b/mobile/lib/widgets/photo_view/src/photo_view_wrappers.dart index d8d2ae7ee5..1496ccc3d1 100644 --- a/mobile/lib/widgets/photo_view/src/photo_view_wrappers.dart +++ b/mobile/lib/widgets/photo_view/src/photo_view_wrappers.dart @@ -145,7 +145,15 @@ class _ImageWrapperState extends State { _lastStack = null; _didLoadSynchronously = synchronousCall; + final oldBoundaries = widget.controller.scaleBoundaries; widget.controller.scaleBoundaries = scaleBoundaries; + if (oldBoundaries != null) { + final ratio = scaleBoundaries.initialScale / oldBoundaries.initialScale; + final currentScale = widget.controller.scale; + if (currentScale != null) { + widget.controller.setScaleInvisibly(currentScale * ratio); + } + } } synchronousCall && !_didLoadSynchronously ? setupCB() : setState(setupCB);