缩放(Flutter)后如何在小部件(图像)周围移动?

时间:2020-06-26 16:16:35

标签: android flutter flutter-layout

我想使图像放大,我可以使用componentDidMount()A来进行缩放,但是我无法在图像周围移动。它只是变焦。我想实施一些拖动操作,以便在缩放后可以在图像周围移动。
我该怎么办?
附言我尝试在GestureDetector中使用TransForm,但不能同时使用onPanStart ...GestureDetector

这是我的代码:

onScaleStart

1 个答案:

答案 0 :(得分:1)

我试图在我的项目中实现类似的功能。我正在使用matrix_gesture_detector包并创建了以下自定义小部件:

import 'package:flutter/material.dart';
import 'package:matrix_gesture_detector/matrix_gesture_detector.dart';

class ZoomableWidget extends StatefulWidget {
  final Widget child;

  const ZoomableWidget({Key key, this.child}) : super(key: key);
  @override
  _ZoomableWidgetState createState() => _ZoomableWidgetState();
}

class _ZoomableWidgetState extends State<ZoomableWidget> {
  Matrix4 matrix = Matrix4.identity();
  Matrix4 zerada =  Matrix4.identity();

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onDoubleTap: (){
        setState(() {
          matrix = zerada;
        });
      },
      child: MatrixGestureDetector(
        shouldRotate: false,
        onMatrixUpdate: (Matrix4 m, Matrix4 tm, Matrix4 sm, Matrix4 rm) {
          setState(() {
            matrix = m;
          });
        },
        child: Transform(
          transform: matrix,
          child: widget.child,
        ),
      ),
    );
  }
}