Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Flatter InteractiveViewer类加载新图像时如何缩小/缩放_Image_Flutter_Zooming - Fatal编程技术网

Image Flatter InteractiveViewer类加载新图像时如何缩小/缩放

Image Flatter InteractiveViewer类加载新图像时如何缩小/缩放,image,flutter,zooming,Image,Flutter,Zooming,我喜欢它,它允许我的用户捏出放大图像的小部件 然而,它给了我一个错误。如果用户在图像上保持放大状态,然后退出包含该图像的“我的详细信息”屏幕,然后使用新的详细信息和图像再次激活“详细信息”屏幕,则新图像的放大量与旧图像的放大量相同。没有重置InteractiveViewer的比例 我试图通过在InteractiveViewer的构造函数中给它一个transformationController:imageZoomController,参数来重置它。然后,当我退出详细信息屏幕时,我尝试了image

我喜欢它,它允许我的用户捏出放大图像的小部件

然而,它给了我一个错误。如果用户在图像上保持放大状态,然后退出包含该图像的“我的详细信息”屏幕,然后使用新的详细信息和图像再次激活“详细信息”屏幕,则新图像的放大量与旧图像的放大量相同。没有重置InteractiveViewer的比例

我试图通过在InteractiveViewer的构造函数中给它一个
transformationController:imageZoomController,
参数来重置它。然后,当我退出详细信息屏幕时,我尝试了
imageZoomController.dispose()
,但是这会导致大量崩溃。。。嗯

它只需要重置为完全缩小,我需要重新触发InteractiveViewer的初始
minScale:1,
参数

我不喜欢使用InteractiveViewer的
onInteractionEnd
参数,因为当我故意放大图像并将其跳开时,我觉得这很烦人


感谢您的帮助。

您可以试用此软件包:

它还允许我们双击以设置初始比例的动画,而无需触摸控制器

用法:

@override
Widget build(BuildContext context) {
  return Container(
    child: PhotoView(
      imageProvider: AssetImage("assets/large-image.jpg"),
    )
  );
}

通过实验找到了一个解决方案,它似乎在模拟器中工作,不太清楚为什么,但我希望问题解决了

imageZoomController.value = Matrix4.identity();
Navigator.of(context).pop();
当我退出DetailsScreen时,旋转imageZoomController.value似乎会将InteractiveViewer重置为1的缩放

谢谢Thea的建议,如果其他人有我的问题&我的解决方案不起作用,那么试试Thea的插件


我将提供更多的上下文,小部件等,在未来,我的坏。抱歉@Nisanth

你好。发布一些小部件代码,以便我们能够提供帮助。