在我的应用中,我希望能够在单击主页中的“按钮”时打开一个带有google maps小部件的页面。当我按下按钮时,导航转换开始,但是它滞后了,因为它同时在载入地图。 有没有一种方法可以在将地图构建到树上之前对其进行“预加载”,或者以某种方式进行异步处理,从而避免滞后?
我尝试仅构建一个容器,然后在构建完成后调用一个异步函数,该函数构建Map-Widget并调用setState()。这不会解决滞后问题。 当我构建一个按钮并按下该按钮加载地图时,也会出现问题。
这是我尝试的代码,简化了:
class GMap ... {
Widget gMap = Container();
Widget build(...) {
return Scaffold(body: gMap);
}
void afterFirstLayout(...) { // This is from a class added from Github
buildMap();
}
void buildMap() async {
setState(() {
gMap = GoogleMap(...);
});
}
}
我想要加载并显示页面,然后地图淡入保留的容器中,就像在原始maps-app中所做的那样。
我还发现,每次映射初始化时都会发生这种滞后。我只建立一个按钮,设置地图,但它滞后了。我建立了带有地图的列表视图。如果我向下滚动并向上备份,则会滞后,因为它会重新构建地图。
如果我使用flutter_google_maps-package中的example-app,也会发生这种情况。当带有地图的页面处于开放状态时,会出现滞后。
我正在模拟器和真实手机上以发布模式运行该应用程序。它发生在每台设备上。