有没有办法在
更具体地说,我想在实际
Canvas
上的给定位置绘制Widget
?更具体地说,我想在实际
FlutterMap
小部件前面的单独Canvas
上绘制与Marker
相关的子小部件。这里尝试创建一个CustomPainter
,但我无法弄清如何在画布上实际绘制小部件。使用RenderObject
需要一个PaintingContext
,我不知道如何创建/检索它:class MarkerPainter extends CustomPainter {
MapController mc;
BuildContext context;
List<Marker> markers;
MarkerPainter(this.context, this.mc, this.markers);
@override
void paint(Canvas canvas, Size size) {
if( markers != null && markers.isNotEmpty ){
for(int i=0; i<markers.length; i++){
Marker marker = markers[i];
Offset o = myCalculateOffsetFromLatLng(marker.point, mc, context);
// Won't work, this needs a PaintingContext...
marker.builder(context).createElement().renderObject.paint(context, o);
}
}
}
@override
bool shouldRepaint(MarkerPainter oldDelegate) => oldDelegate.markers != markers;
}