flutter - 我无法在颤振中打开谷歌地图
问题描述
我有一个名为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()
)],
解决方案
您首先需要将 mapsample() 的返回类型设置为“Widget”以返回小部件 GoogleMaps。
现在您可以创建一个小部件变量,在函数之外的任何地方说“子”。在 onPressed 方法中调用 setState 并使用它来将 mapsample() 返回到创建的这个子 Widget 变量中。
如果我正确理解了您的代码,那么我相信这应该可以工作。
推荐阅读
- javascript - 将 websocket ref 传递给子组件
- c++ - Google Kickstart 2020 Round A 2020 错误答案
- ios - UIvew 在不同位置使用相同的代码
- flutter - 访问 Cloud Firestore 会引发 NoSuchMethodError
- excel - VBA - 使用范围函数从一个工作表复制并粘贴到另一个工作表
- python - 是否可以从其他人的不和谐服务器中获取消息?
- laravel - Laravel eloquent 得到一个二维数组的数组
- server-side-rendering - 使用 Svelte 进行动态服务器端渲染。如何在客户身上补水?
- android - Xamarin Forms 允许在播放视频时从 Android 上的另一个应用程序播放音乐
- database - 迁移 wordpress 网站并使用插件更改 URL 后链接不起作用