When placing a CustomPaint widget on top of Google maps widget, the map is no longer receiving touch events (scrolling, pan, tap, ..etc).
Is it possible to put CustomPaint widget above map while keeping map interactive? Here is a sample code explaining the case:
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
void main() =>
runApp(
MaterialApp(
title: 'Flutter Google Maps Demo',
home: Scaffold(
body: Scaffold(
body: Stack(children: <Widget>[
GoogleMap(
initialCameraPosition: CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
),
),
CustomPaint(
painter: ShapesPainter(),
child: Container(height: 500),
)
],)
),
),
)
);
class ShapesPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final paint = Paint();
paint.color = Color(0xFF3f6cbf);
canvas.drawCircle(Offset(0, 0), 300, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) => false;
}
Wrap the CustomPainter
widget with IgnorePointer
it will ignore any click or other gestures read more
Final code
Stack(
children: <Widget>[
GoogleMap(
initialCameraPosition: CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
),
),
IgnorePointer(
child: CustomPaint(
painter: ShapesPainter(),
child: Container(height: 500),
),
)
],
)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.