Ручка нажмите на CustomPainter - флаттер - PullRequest
0 голосов
/ 02 мая 2020

Я создаю это простое приложение

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Theme.of(context).backgroundColor,
      body: CustomPaint(
        painter: CircuitPainter(),
        size: MediaQuery.of(context).size,
      ),
    );
  }
}

И в моем CircuitPainter я рисую несколько TrainSwitch, которые также расширяют CustomPainter.

class CircuitPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {

    ...

    // First switch
    Point origin = new Point(size.width * 0.05, bottomHeight);
    Point endCurveFirstSwitch = new Point(size.width * 0.20, middleHeight);
    Point firstMiddlePoint = new Point(size.width * 0.30, middleHeight);
    Point firstBottomPoint = new Point(size.width * 0.20, bottomHeight);
    TrainSwitch firstSwitch = new TrainSwitch(
        origin, firstBottomPoint, firstMiddlePoint,
        endCurve: endCurveFirstSwitch);
    firstSwitch.paint(canvas, size);

I хочу делать действия, когда я нажимаю на переключатель. Я нашел некоторые темы, но они всегда советуют оборачивать CustomPaint в GestureDetector, но в моем случае я хочу определить на каждом TrainSwitch, как это сделать?

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