首页 > 解决方案 > 我无法在颤振中打开谷歌地图

问题描述

我有一个名为mapsample()的方法,此方法返回 Google 地图,但在我的应用程序中不起作用。如果我在我的vist Home中调用该方法,它就可以工作。这个方法在ListPage中。

我究竟做错了什么?

body: Container(
          decoration: BoxDecoration(
            image: DecorationImage(
              image: AssetImage('assets/coffee_bg.png'),
              fit: BoxFit.cover,
            ),
          ),
          child: ListPage()
        ),
      ));

mapsample() 方法

mapsample() {
  Completer<GoogleMapController> _controller = Completer();
  final CameraPosition _kGooglePlex = CameraPosition(
    target: LatLng(37.42796133580664, -122.085749655962),
    zoom: 14.4746,
  );
  return Container(child: GoogleMap(
    mapType: MapType.hybrid,
    initialCameraPosition: _kGooglePlex,
    onMapCreated: (GoogleMapController controller) {
      _controller.complete(controller);
    },
  ));
}

列表页

children: <Widget>[
                                    ClipRRect(
                                      borderRadius: BorderRadius.only(
                                        topLeft: Radius.circular(8.0),
                                        topRight: Radius.circular(8.0),
                                      ),
                                      child: Image.network(ad.data.toString(),
                                        width: 300,
                                        height: 150,
                                        fit:BoxFit.fill  

                                      ),
                                    ),
                                    ListTile(
                                      title: Text("Reportado por:"+snapshot.data[index].data["nombre"].toString()+" "+snapshot.data[index].data["apellidos"].toString()),
                                      subtitle: Text("Origen de la fuga:"+snapshot.data[index].data["colonia"].toString()),
                                    ),
                                     FlatButton.icon(
              icon: Icon(Icons.map),
              label: Text('ver ubicación'),
              onPressed:() => mapsample()
                                    
                                     )],

标签: flutterdart

解决方案


您首先需要将 mapsample() 的返回类型设置为“Widget”以返回小部件 GoogleMaps。

现在您可以创建一个小部件变量,在函数之外的任何地方说“子”。在 onPressed 方法中调用 setState 并使用它来将 mapsample() 返回到创建的这个子 Widget 变量中。

如果我正确理解了您的代码,那么我相信这应该可以工作。


推荐阅读