我想在 Flutter 中创建一个无限可交互的网格,我可以在其中放置节点/元素。
我尝试将 InteractiveViewer 与 CustomPainter 一起使用,该 CustomPainter 将网格绘制为其子项。它提供了所需的功能,但平移操作会影响网格本身,导致网格在平移过程中消失。
我现在的代码:
/// 表示图表画布小部件。 类 DiagramCanvas 扩展 ConsumerWidget { const DiagramCanvas({Key? key}) : super(key: key); @覆盖 小部件构建(BuildContext 上下文,WidgetRef ref){ 返回消费者( 建设者:(上下文,手表,_){ final screenSize = MediaQuery.of(context).size; 返回容器( 宽度:double.infinity, 高度:double.infinity, color: Colors.white, // 设置你想要的背景颜色 // 创建一个用于平移和缩放的 InteractiveViewer 孩子:InteractiveViewer( panEnabled:真, scaleEnabled:真, boundaryMargin: EdgeInsets.all(double.infinity), 最小尺度:0.5, 最大比例:2.0, 孩子:SizedBox.fromSize( 尺寸:Size.infinite, 孩子:堆栈( clipBehavior: Clip.none, 孩子们: [ 定位.填充( 孩子:ClipRect( 孩子:CustomPaint( 尺寸: 尺寸(屏幕尺寸.宽度 * 2, 屏幕尺寸.高度 * 2), 画家:DiagramGridPainter(), ), ), ), ], ), ), ), ); }, ); } }
我需要添加或更改什么才能实现我的目标?