gpt4 book ai didi

flutter - Flutter MatrixGestureDetector-最小和最大比例

转载 作者:行者123 更新时间:2023-12-03 04:40:43 25 4
gpt4 key购买 nike

我的问题基本上重复了先前的问题:Flutter: How to set a max/min scale using matrix_gesture_detector
我有一个MatrixGestureDetector:

  MatrixGestureDetector(
onMatrixUpdate: (m, tm, sm, rm) {
setState(() {
transform = m;
});
},
child: Transform(
transform: transform,
child: Image.asset("assets/maps/map.gif"),
),
),
可以无限放大和缩小图片,但是我想限制最小和最大比例。
上面链接中建议的解决方案对我来说不正确。比例实际上是有限的,但是当其达到极限时,手势将开始被错误地处理。当达到极限时,尝试放大或缩小时,图片开始非常快速地移动。
有什么解决办法吗?也许还有其他软件包可以解决我的问题?由于以下原因,PhotoViev不满意我: Flutter PhotoView - Rotation about the point between the fingers

最佳答案

Flutter宣布了一个新版本(1.20),并带有一个名为InteractiveViewer的新小部件。
您可以通过设置InteractiveViewerminScale来使用maxScale实现所需的功能。

This release introduces a new widget, the InteractiveViewer. The InteractiveViewer is designed for building common kinds of interactivity into your app, like pan, zoom, and drag ’n’ drop


在此处阅读有关发行的更多信息: Flutter 1.20 Release notes
我添加了一个演示:
注意:仅当您已升级到最新的 Flutter version(1.20)时,才能使用此小部件
class ZoomImage extends StatelessWidget {

final transformationController = TransformationController();

@override
Widget build(BuildContext context) {
return Scaffold(
body: InteractiveViewer(
transformationController: transformationController,
onInteractionEnd: (details) {
setState(() {
// unzoom when interaction has ended
transformationController.toScene(Offset.zero);
});
},
// set the boundary margin for the image
boundaryMargin: EdgeInsets.all(20.0),
// set min scale here
minScale: 0.1,
// set maximum scall here
maxScale: 1.6,
child: ClipRRect(
borderRadius: BorderRadius.circular(18.0),
child: Image.asset('assets/maps/map.gif'),
),
),
);
}
}

关于flutter - Flutter MatrixGestureDetector-最小和最大比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63305464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com