在 Fragment 中恢复 Google 个地图状态
Restore Google Maps state in Fragment
我正在创建一个应用程序,其中有一个包含地图的片段。当用户点击搜索栏时,会显示另一个片段(搜索片段),我在其中处理所有搜索逻辑,包括显示建议。搜索完成后,我在与搜索查询相对应的位置添加了一个标记。但是,片段被重新创建并且 onMapReady()
也被调用。因此,在将相机移动到我想要放置标记的位置的过程中,存在一个故障,无法显示从 SearchFragment
到 MapsFragment
的平滑过渡。有没有办法保存地图状态以避免 onMapReadyCallback
以便从 SearchFragment
到 MapsFragment
的过渡变得无缝?
您可以在 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
}
}
我正在创建一个应用程序,其中有一个包含地图的片段。当用户点击搜索栏时,会显示另一个片段(搜索片段),我在其中处理所有搜索逻辑,包括显示建议。搜索完成后,我在与搜索查询相对应的位置添加了一个标记。但是,片段被重新创建并且 onMapReady()
也被调用。因此,在将相机移动到我想要放置标记的位置的过程中,存在一个故障,无法显示从 SearchFragment
到 MapsFragment
的平滑过渡。有没有办法保存地图状态以避免 onMapReadyCallback
以便从 SearchFragment
到 MapsFragment
的过渡变得无缝?
您可以在 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
}
}