我正在构建这个简单的 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上进行检测,该怎么做?