Así que estoy tratando de hacer un widget con pellizcar para hacer zoom en la vista de lista, la vista de lista contiene: contenedor que contiene texto. Así que básicamente puedes pellizcar para hacer zoom en toda la vista de lista. He investigado el visor interactivo flutter y la biblioteca de zoom, pero parece que no funciona.
De lo siguiente:
A lo siguiente:
Cualquier pensamiento n oraciones.
Solución del problema
¡Puedes pasar cualquier widget a esta clase y puedes hacer zoom en el widget como puedas!
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:vector_math/vector_math_64.dart';
class ZoomableWidget extends StatefulWidget {
final Widget child;
const ZoomableWidget({Key? key, required this.child}): super(key: key);
@override
_ZoomableWidgetState createState() => _ZoomableWidgetState();
}
class _ZoomableWidgetState extends State<ZoomableWidget> {
double _scale = 1.0;
late double _previousScale;
@override
Widget build(BuildContext context) {
return ClipRect(
child: GestureDetector(
onScaleStart: (ScaleStartDetails details) {
_previousScale = _scale;
},
onScaleUpdate: (ScaleUpdateDetails details) {
setState(() {
_scale = _previousScale * details.scale;
});
},
onScaleEnd: (ScaleEndDetails details) {
_previousScale = 0;
},
child: Transform(
transform: Matrix4.diagonal3(Vector3(_scale.clamp(1.0, 5.0),
_scale.clamp(1.0, 5.0), _scale.clamp(1.0, 5.0))),
alignment: FractionalOffset.center,
child: widget.child, **add your listview here**
),
),
);
}
}
No hay comentarios:
Publicar un comentario