Я пытаюсь создать многослойный экран, используя стек, который позволяет пользователю взаимодействовать как с виджетом переднего плана, так и с фоновым виджетом.
Однако я начал базовый c контур экрана, даже когда при использовании HitTestBehavior.translucent
консоль печатает red pressed
только при нажатии на прозрачный красный контейнер. Я бы хотел, чтобы консоль печатала обе строки при нажатии на красно-фиолетовый контейнер.
Ниже приведен код, который я использовал.
@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,
);
}
Ниже показан экран: