Как отменить жест, если он выходит за пределы контейнера во флаттере - PullRequest
0 голосов
/ 04 марта 2019

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

issue

Краткое описание: Как видите, у меня есть два контейнера,Один для рисования и ниже для «рисовать выше».Но точки нарисованы за его пределами. Я хочу, чтобы пользователь мог рисовать внутри верхнего контейнера.Поэтому мой вопрос - как отменить обнаружение жестов, если оно выходит за пределы определенного контейнера?

Фрагмент кода:

final GestureDetector paintGesture = GestureDetector(
  onPanUpdate: (DragUpdateDetails details) {
    setState(() {
      RenderBox object = context.findRenderObject();
      Offset _localPosition = object.localToGlobal(details.globalPosition);
      _points = new List.from(_points)..add(_localPosition);
    });
  },
  onPanEnd: (DragEndDetails details) {
      _points.add(null);
  },
  child: sketchArea,
);

final Container sketchArea = Container(
  //margin: EdgeInsets.all(1.0),
  //alignment: Alignment.topLeft,
  color: Colors.white,
  child: new CustomPaint(
    painter: new Signature(points: _points),
    size: Size.infinite,
  ),
);

Эшафот:

return new Scaffold(
  body: Container(
    child: Column(
      children: <Widget>[
        Expanded(
          child:  paintGesture,
        ),
        Expanded(
          child: Center(
            child: Container(
              child: Text(
                _selectedInput,
                style: TextStyle(
                  color: Colors.black,
                  fontSize: 40.0,
                ),
              ),
            ),
          ),
        ),
      ],
    ),
  ),
);
...