Flutter 堆栈中的GestureDetector被前台小部件阻止。HitTestBehavior.Transparent未按预期工作

Flutter 堆栈中的GestureDetector被前台小部件阻止。HitTestBehavior.Transparent未按预期工作,flutter,dart,gesturedetector,Flutter,Dart,Gesturedetector,我正在尝试使用一个堆栈创建一个多层屏幕,它允许用户与前台和后台窗口小部件进行交互 我已经开始了屏幕的基本轮廓,但是即使在使用HitTestBehavior.transparent时,控制台也只在按下半透明的红色容器时打印红色。我希望console在按下红色/紫色容器时打印两个字符串 下面是我使用的代码 @override Widget build(BuildContext context) { final children = <Widget>[ Gest

我正在尝试使用一个堆栈创建一个多层屏幕,它允许用户与前台和后台窗口小部件进行交互

我已经开始了屏幕的基本轮廓,但是即使在使用
HitTestBehavior.transparent
时,控制台也只在按下半透明的红色容器时打印
红色。我希望console在按下红色/紫色容器时打印两个字符串

下面是我使用的代码

  @override
  Widget build(BuildContext context) {
    final children = <Widget>[
      GestureDetector(
        behavior: HitTestBehavior.translucent,
        onTap: () {
          debugPrint('blue pressed');
        },
        child: Container(
          height: 500,
          width: MediaQuery.of(context).size.width,
          color: Colors.blue,
        ),
      ),
    ];

    if (exercise.instructions.isNotEmpty) {
      children.add(
        GestureDetector(
          behavior: HitTestBehavior.translucent,
          onTap: () {
            debugPrint('red pressed');
          },
          child: Container(
            height: 400,
            width: MediaQuery.of(context).size.width,
            color: Colors.red.withAlpha(100),
          ),
        ),
      );
    }

    return Stack(
      alignment: Alignment.bottomCenter,
      children: children,
    );
  }
@覆盖
小部件构建(构建上下文){
最终子女=[
手势检测器(
行为:HitTestBehavior.transparent,
onTap:(){
调试打印(“蓝色打印”);
},
子:容器(
身高:500,
宽度:MediaQuery.of(context).size.width,
颜色:颜色,蓝色,
),
),
];
如果(练习.说明.isNotEmpty){
children.add(
手势检测器(
行为:HitTestBehavior.transparent,
onTap:(){
debugPrint(‘红色按下’);
},
子:容器(
身高:400,
宽度:MediaQuery.of(context).size.width,
颜色:颜色。红色。带alpha(100),
),
),
);
}
返回堆栈(
对齐:对齐.bottomCenter,
儿童:儿童,,
);
}
下面是生成的屏幕: