在Flutter中的堆栈小部件中使用时,多个手势检测器无法正常工作

时间:2020-08-26 06:33:20

标签: flutter dart flutter-layout

我有一堆小部件:

堆栈中最底部的项目是填充堆栈的图像。它包含一个手势检测器。

它的下一项是位于此堆栈右上角的另一张图像。该图像还包裹在手势检测器中。

我想要的是,当用户单击右上角的小图像时,它应该只调用该右上角图像的手势回调。

当前行为:

两个图像的手势回调都被调用。

这是代码段:

FalconNeumorphicButton(
        onPressed: () {},
        child: Stack(
          alignment: Alignment.center,
          fit: StackFit.expand,
          children: [
            Positioned.fill(child: FalconImageWidget(image)),
            Positioned(bottom: 0, height: height / 2, child: gradientTitleOverlay),
            Positioned(
              top: 16,
              right: 16,
              child: GestureDetector(
  onTap: () {
    onPressed?.call();
  },
  child: Container(
    height: 40,
    width: 40,
    child: MyImage,
  ),
)               ),
          ],
        ),
      )

在上面的代码中,当我单击右上角的图像时,也将调用包围该图像的按钮的onPressed。我不希望这种情况发生。我该如何预防?

我曾尝试将HitTest.opaque的行为提供给较小容器的手势检测器,但它仍在检测按钮的触摸。

0 个答案:

没有答案