所以我基本上有一个有三个选项卡的应用程序。在其中一个上面,我有一个带有相应标记的谷歌地图和一个带有基于位置的FireStore查询的监听器。选择选项卡后,将查询附近的元素并显示在地图上。
但是,当我更改选项卡并再次返回映射时,映射、侦听器和所有标记都将再次设置(因为调用了initState()
和dispose()
)。
选择页面后,保存地图中的所有状态并继续地图上的上一个状态的最佳方法是什么?
我读过一些关于redux和bloc的文章,这是我在这里需要的模式吗?如果是,如何将其应用于谷歌地图?
最佳答案
我也有同样的问题,flutter基本上就是每次你换页面的时候都会重新加载你的谷歌地图页面。我用indexedstack解决了这个问题。所以我的所有页面一直都在堆栈中,它们不会重新加载。我不确定这是不是最好的方法,但它奏效了。
child: new IndexedStack(
children: _pages,
index: widget.currentItem,
),
indexedStack仅显示堆栈的索引项,但所有项都在堆栈中,即使未显示它们,因此在更改选项卡时不会重新加载它们。根据带有setState的Tabbar索引的索引更改当前项…