好吧,我是Flutter语言的新手,我必须使用带有标记的google maps制作一个应用,当您在标记的信息窗口中单击时,它必须打开一个包含该标记信息的新页面,因此我建立了新页面,将标记放置在地图上,并使用onTap:(){}移到了新页面,但是当我运行应用程序并单击信息窗口时,什么也没发生。
起初,它在上下文行上显示了一个错误,我编写了一个“ BuildContext context;”。并且错误已解决,但“信息”窗口仍然不起作用,我尝试移动“ BuildContext上下文”;在标记之外,但仍然相同,我试图在Internet上找到其他解决方案,但我发现的唯一解决方案是在此站点上,我不知道该解决方案是什么,或者对我不起作用。
Marker servicioej= Marker(
markerId: MarkerId('marker1'),
position: LatLng(-32.3162695, -58.0949139),
infoWindow: InfoWindow(
title: 'Restaurante',
onTap: () {
BuildContext context;
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ServicioStateful()),
);
}),
icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueBlue),
);
我只需要单击标记将其移至另一页,从昨天开始我就遇到了这个问题,我可以提供一些帮助,抱歉,如果遇到拼写错误,我会尽力做到这一点可以理解的xD
答案 0 :(得分:0)
在变量中保存由BuildContext
方法提供的build
的引用,并将该上下文变量传递给Navigator
。
class MapScreen extends StatefulWidget{
...
}
class MapScreenState extends State<MapScreen>{
BuildContext _myContext;
@override
Widget build(BuildContext context) {
_myContext = context;
Marker servicioej= Marker(
markerId: MarkerId('marker1'),
position: LatLng(-32.3162695, -58.0949139),
infoWindow: InfoWindow(
title: 'Restaurante',
onTap: () {
Navigator.push(_myContext, MaterialPageRoute(builder: (context) => ServicioStateful()));
}),
icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueBlue),
);
return Scaffold(
...
);
}
}