Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 扩展容器中的手势检测_Flutter_Gesture - Fatal编程技术网

Flutter 扩展容器中的手势检测

Flutter 扩展容器中的手势检测,flutter,gesture,Flutter,Gesture,我的小部件有一个区域是用扩展容器创建的,如: child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Container( color: Colors.blueGrey[200], child: Text( startTime, textAlign: TextAlign.left, style: TextStyle(

我的小部件有一个区域是用扩展容器创建的,如:

child: Column(
  crossAxisAlignment: CrossAxisAlignment.stretch,
  children: [
    Container(
      color: Colors.blueGrey[200],
      child: Text(
        startTime,
        textAlign: TextAlign.left,
        style: TextStyle(
          backgroundColor: Colors.blueGrey[200],
          fontSize: 16,
          fontWeight: FontWeight.normal),
        ),
      ),
      Expanded(
        /* If this gesture detector is instantiated the tap is never found;
        child: GestureDetector(
        behavior: HitTestBehavior.translucent,
        onTap: () => print("OnTap"),
        */
        child:
          Container(color: Colors.red[600]),
        //),
      ),  // Expanded
  ], // children
), // Column
如果上面的代码是用这个包装的

Expanded(
  child: GestureDetector(
    behavior: HitTestBehavior.translucent,
    onTap: () => print("OnTap"),
    child: Container(
      color: Colors.red[600],
      child: // Code above
    ), // Container
  ), //GestureDetector  
), // Expanded
然后,onTap只在文本小部件中注册,而不会在最后一个扩展的容器中注册

检测没有在容器上触发,并且需要一个小部件来填充要检测的空间,这是否正确

编辑 我将扩展容器的手势检测更改为:

Expanded(
  child: Material(
    color: Colors.red[600],
    child: InkWell(
      onTap: () {print("InkWell");},
    ),  // InkWell
  ),  // Material
),  // Expanded

点击仍然无法识别。

第一段代码应该可以正常工作,我认为您从代码的另一部分得到错误,请提供完整的代码好吗?还有你在控制台里看到的东西


这是您在DartPad中完全工作的代码片段:

很遗憾,我不能,因为它正在添加到SpanaBlegridView中,我不知道他们在做什么。您是在谈论这个SannableGrid:?如果您提供页面的所有代码,将非常有用。如果你认为这个问题是指向软件包的链接,我建议你在这里打开一个问题:页面超过350行,并调用专有api来获取然后显示的信息。我将写一个较小的页面,并伪造数据,使其易懂。没有其他方法来调试Flatter应用程序吗?由于您的错误来自UI,如果您没有提供有关UI的详细信息,我们无法帮助您进行调试,请使用控制台日志进行调试,如果有错误阻止Flatter正确构建UI,我们将在此处提供。否则,如果你想让你的代码保持清晰易懂,那么将UI代码和对API的调用结合起来从来都不是一件好事。我感谢你的帮助,如果没有API中的数据,页面将无法显示。我使用未来的构建器来构建UI,因此有很多地方可能出错。我已经使用颤动了大概2个星期,所以到目前为止,我会把我自己当作一个新手。我现在和未来的建设者有麻烦了。这就像往山上推绳子一样。你能展示一下专栏的父控件吗?如果您使用的是scaffold?@Anas Mohammed I通过重写Future Builder解决了这个问题,返回了一个SpannableGrid实例,更加简洁。我应该删除这个问题还是添加我自己的答案?代码是几百行代码,没有人会从中学习到任何东西。两周前我开始使用flutter?这取决于你。你可以写一个解决方案,描述为什么它不起作用,或者如果你认为写答案对任何人都没有帮助,那么你可以删除它。