好的,我对 Flutter 语言很陌生,我必须用谷歌地图制作一个使用标记的应用程序,当你点击标记的信息窗口时,它必须打开一个新页面,其中包含有关该标记的信息,所以我构建了新页面,将标记放在地图中并使用 onTap:(({} 移动到新页面,但是当我运行应用程序并单击信息窗口时,没有任何反应。
起初它在上下文行上向我显示了一个错误,我写了一个"BuildContext context;",错误得到了解决,但信息窗口仍然什么也没做,我尝试将"BuildContext context;"移动到标记之外,但仍然相同,我试图在互联网上找到其他解决方案,但我唯一找到的解决方案是在这个网站上,我不明白解决方案是什么, 或者对我不起作用。
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
将build
方法提供的BuildContext
引用保存在变量中,并将该上下文变量传递给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(
...
);
}
}