如何在 Flutter 中触摸/拖动 CustomPaint 下的小部件

问题描述 投票:0回答:1

我有一个媒体编辑器类,正在编辑带有贴纸/文本/绘画的照片/视频...

我希望用户能够在所有其他小部件之上绘制,就像 SnapChat 的预览一样。这就是我正在尝试做的:

因此

CustomPainter
被放置在
Stack
内的最后。

问题是我的包含颜色绘制的

CustomPainter
适合屏幕,并且即使周围没有
GestureDetector
也正在接受所有触摸事件。

我用于画家的代码受到这个插件的启发:

GestureDetector(
            onPanUpdate: (details) {
              _onPanUpdate(details);
            },
            onPanStart: (details) {
              _onPanStart(details);
            },
            onPanEnd: (details) {
              _onPanEnd(details);
            },
            child: CustomPaint(
              size: Size.infinite,
              willChange: true,
              painter: DrawPainter(painterController.pathHistory,
                  repaint: painterController),
            ),
          ),

正如所说,

GestureDetector
不是问题,因为如果我们删除它,画家本身将仅接收所有事件:

CustomPaint(
 size: Size.infinite
)

所以问题是如何在屏幕顶部显示绘图颜色,同时仍然像预览中一样触摸并拖动堆栈中的其他小部件?

flutter drawing touch-event custom-painter
1个回答
0
投票

尝试可触摸。您可以向各个形状添加手势回调。

© www.soinside.com 2019 - 2024. All rights reserved.