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

3

我有一个媒体编辑器类,用于使用贴纸/文本/画笔编辑照片/视频等内容...

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

enter image description here

因此,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
)

所以问题是,我如何在屏幕顶部显示绘图颜色,并仍然可以触摸和拖动其他小部件,就像预览中一样?
1个回答

0
试试touchable。您可以为每个形状添加手势回调函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接