【问题标题】:Restore Google Maps state in Fragment在 Fragment 中恢复 Google Maps 状态
【发布时间】:2021-03-18 19:54:50
【问题描述】:

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

【问题讨论】:

    标签: android android-fragments google-maps-markers google-maps-api-2


    【解决方案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)。我真的很感激
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    相关资源
    最近更新 更多