代码之家  ›  专栏  ›  技术社区  ›  Bram Vanbilsen

如何通过手势传递给下面的对象?

  •  1
  • Bram Vanbilsen  · 技术社区  · 8 年前

    我正试图击中最上面可见物体后面的物体。我试图通过使用 GestureDetector behavior 属性。
    代码如下:

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new GestureDetector(
          onTap: () => print("Bottom"),
          child: new Container(
            color: Colors.redAccent,
            child: new Center(
              child: new GestureDetector(
                onTap: () => print("Top"),
                behavior: HitTestBehavior.translucent,
                child: new Container(
                  width: 200.0,
                  height: 200.0,
                  color: Colors.blue.withOpacity(0.3),
                ),
              ),
            ),
          ),
        );
      }
    } 
    

    不幸的是,这似乎不起作用。只有 顶部 打印到控制台。医生让我觉得这是正确的方法,但也许我这里遗漏了什么?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Danny Tuppeny    8 年前

    我想要最下面的一个或两个 onTap 事件待定。

    如果只是得到 Bottom 事件很好,然后简单地删除:

    onTap: () => print("Top"),
    

    为我工作。在评论了那行之后,它会打印出来 底部 当我敲击内方格时。

    使用此版本测试:

    Dannys-MacBook:flutter danny$ flutter --version
    Flutter 0.4.5-pre.96 • channel master • https://github.com/DanTup/flutter.git
    Framework • revision d79f2ee223 (12 hours ago) • 2018-05-26 12:29:53 -0700
    Engine • revision 1ed25ca7b7
    Tools • Dart 2.0.0-dev.58.0.flutter-f981f09760
    

    也就是说,移除内部 GestureDetector 对吗,所以我想知道你添加它的原因是什么?