你好,我尝试使用谷歌 Map 插件为flutter https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter
我用这个例子
https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter/example/lib
但在这个例子中有一些页面 . 在我的应用程序中,我只需要在应用程序的启动时使用一个 Map . 问题,有了这个例子,我没有设法在我方便的时候使用它 . 所以我尝试使用read.me的极简主义示例,但它是一个statlesswidget,而且我不能像整数Tag函数那样整数Tag函数或map_ui.dart . 所以我试图在statefull中传递这个无状态,但是当我这样做时,我有一个错误
这是我试图从两个例子中编译的内容
例子1 https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter
void main() {
GoogleMapController.init();
final GoogleMapOverlayController controller =
GoogleMapOverlayController.fromSize(width: 300.0, height: 200.0);
final Widget mapWidget = GoogleMapOverlay(controller: controller);
runApp(MaterialApp(
home: new Scaffold(
appBar: AppBar(title: const Text('Google Maps demo')),
body: MapUiBody(mapWidget, controller.mapController),
),
navigatorObservers: <NavigatorObserver>[controller.overlayController],
));
}
例如2
https://github.com/flutter/plugins/blob/master/packages/google_maps_flutter/example/lib/map_ui.dart
class MapUiBody extends StatefulWidget {
final GoogleMapOverlayController controller;
const MapUiBody(this.controller, GoogleMapController mapController);
@override
State<StatefulWidget> createState() =>
MapUiBodyState(controller.mapController);
}
class MapUiBodyState extends State<MapUiBody> {
MapUiBodyState(this.mapController);
final GoogleMapController mapController;
@override
Widget build(BuildContext context) {
return Column(
);
}
}
有了这个,我有一个错误
body: MapUiBody(mapWidget, controller.mapController),
mapWidget: the argument type Widget can't be assigned to the parameter type 'GooglemapoverlayController'
2 回答
我成功地在主页上显示 Map 但我无法移动 Map ..
你有
你经过的地方
其中
mapWidget
传递给final GoogleMapOverlayController controller;
,这不是Widget
.controller.mapController
可能是GoogleMapController
,正如const MapUiBody(..., GoogleMapController mapController);
所期望的那样,但是传递它似乎是多余的,因为无论如何你都可以从controller
传递到mapWidget
.从您的代码中不清楚您的意图是什么 .
你为什么要通过
mapWidget
?它应该在MapUiBody
中发生什么?