在 Fragment 中恢复 Google 个地图状态

Restore Google Maps state in Fragment

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

您可以在 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
    }
}