image - Flutter InteractiveViewer 类如何在加载新图像时缩放/缩小
问题描述
我喜欢InteractiveViewer 类,它让我的用户可以通过捏合来放大图像小部件。
但是,它给了我一个错误。如果用户仍然放大图像,然后退出包含该图像的 DetailsScreen,然后使用新的详细信息和图像再次激活 DetailScreen,则新图像将放大与旧图像相同的数量。InteractiveViewer 的比例未重置。
我试图通过transformationController: imageZoomController,
在其构造函数中为 InteractiveViewer 提供一个参数来重置它。然后,当我退出 DetailScreen 时,我尝试过imageZoomController.dispose()
,但这会导致很多崩溃......嗯。
它只需要重置为完全缩小,我需要重新触发 InteractiveViewer 的初始minScale: 1,
参数。
我不赞成使用 InteractiveViewer 的onInteractionEnd
参数,因为当我故意放大图像并且它跳离它时,我觉得它很烦人。
帮助表示赞赏。
解决方案
你可以试试这个包:https ://pub.dev/packages/photo_view
它还允许我们双击动画以初始化缩放,甚至无需触摸控制器。
用法:
@override
Widget build(BuildContext context) {
return Container(
child: PhotoView(
imageProvider: AssetImage("assets/large-image.jpg"),
)
);
}
推荐阅读
- javascript - 如何在已安装的 PWA 应用程序上推送应用程序更新?
- c++ - 是否可以在 Visual Studio 上设置选项以保持不同多线程设置之间的确定性浮点结果?
- javascript - 我如何以 PDF 格式下载谷歌数据工作室报告
- java - 正确等待使用 Java 等待给定的数据库值?
- google-cloud-logging - 跳转到 Stackdriver 日志查看器中的搜索文本
- python - 使用带有 --debug 参数的 Pyinstaller 时出现的问题
- css - 如何修复 HTML 样式覆盖 CSS?
- javascript - Openlayers geometry shapes not zooming when map is zoomed
- c# - Convert.ToBase64String 给出空字符串
- sql - SQL:我需要一列根据其他列的值自动更新其值