android地图在恢复片段后停止响应

WIl*_*JBD 3 android google-maps fragment

下面列出的是我控制地图的基本代码.我稍后会做一些非常高级的东西.一切似乎都很完美,直到onResume().

这是布局,您可以在1个单独的活动中浏览应用程序,并使用多个片段.它mapFragment包含在片段内.这很好用.但是当我添加另一个片段并在后面的堆栈上推送它时,当我稍后再回到它时,地图没有响应.

我想通过我的电话转移到固定该setupMaps();onResume(),但是这引起了gMaps为空时,我得到它gMaps = mapFragment.getMap();setViews().

我该怎么处理?

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        root = inflater.inflate(R.layout.fragment_maps, container, false);

        setupMaps();
        return root;
    }

    private void setupMaps()
    {
        gMaps = null;
        fm = getActivity().getSupportFragmentManager();

        mapFragment = SupportMapFragment.newInstance();
        android.support.v4.app.FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.add(R.id.flMapContainer, mapFragment).commit();

    }


    @Override
    public void onResume()
    {
        super.onResume();

        mapFragment.onResume();
        setViews();
    }

    private void setViews()
    {
        gMaps = mapFragment.getMap();
        getData(); // initializes overlays, markers, polygons etc.
    }

    @Override
    public void onPause()
    {           
        mapFragment.onPause();
        super.onPause();
    }
Run Code Online (Sandbox Code Playgroud)

Sco*_*eld 7

你在logcat中看到了什么吗?我以前遇到过这样的问题,我认为它与旧的地图片段的View在创建它的新实例之前没有从其父ViewGroup中删除有关.这导致重复片段的错误.

在创建SupportMapFragment的新实例之前,请尝试从flMapContainer中删除所有视图.