在 Fragment 中恢复 Google Maps 状态
Posted
技术标签:
【中文标题】在 Fragment 中恢复 Google Maps 状态【英文标题】:Restore Google Maps state in Fragment 【发布时间】:2021-03-18 19:54:50 【问题描述】:我正在创建一个应用程序,其中有一个包含地图的片段。当用户点击搜索栏时,会显示另一个片段(搜索片段),我在其中处理所有搜索逻辑,包括显示建议。搜索完成后,我在与搜索查询对应的点添加一个标记。然而,片段被重新创建并且onMapReady()
也被调用。因此,在将相机移动到我想要放置标记的位置的过程中,出现了一个故障,它不会显示从SearchFragment
到MapsFragment
的平滑过渡。有没有办法保存地图状态以避免onMapReadyCallback
,以便从SearchFragment
到MapsFragment
的过渡变得无缝?
【问题讨论】:
【参考方案1】:您可以在MapsFragment
中设置setRetainInstance(true)
。
Java:
public class MyMapFragment extends Fragment
@Override
public void onActivityCreated(Bundle savedInstanceState)
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
科特林:
class MyMapsFragment : Fragment()
override fun onActivityCreated(savedInstanceState: Bundle?)
super.onActivityCreated(savedInstanceState)
retainInstance = true
【讨论】:
非常感谢。我忘记设置setRetainInstance(true)
。我真的很感激以上是关于在 Fragment 中恢复 Google Maps 状态的主要内容,如果未能解决你的问题,请参考以下文章
Android Fragment使用 Activity, Fragment, WebView的状态保存和恢复
在 Android 的 Fragment 中使用 Google 地图