GestureDetector в стеке заблокирован виджетом переднего плана. HitTestBehavior.translucent не работает, как ожидалось - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать многослойный экран, используя стек, который позволяет пользователю взаимодействовать как с виджетом переднего плана, так и с фоновым виджетом.

Однако я начал базовый 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,
    );
  }

Ниже показан экран:

Screen produced by code

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...