处理CustomPainter上的水龙头-Flutter

时间:2020-05-02 00:41:30

标签: flutter canvas dart

我正在构建这个简单的 app

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);

我想在单击开关时执行操作。我找到了一些主题,但他们总是建议将CustomPaint包装在GestureDetector中,但就我而言,我想在每个TrainSwitch上进行检测,该怎么做?

0 个答案:

没有答案