Mapy android przestają odpowiadać po wznowieniu fragmentu

Poniżej znajduje się mój podstawowy kod do sterowania mapami. Później zrobię kilka naprawdę zaawansowanych rzeczy. Wszystko wydaje się działać idealnie, dopókionResume().

Oto układ, przechodzisz przez aplikację w 1 pojedynczym działaniu, z wieloma fragmentami. TomapFragment znajduje się wewnątrz fragmentu. To działa dobrze. Kiedy jednak dodam kolejny fragment i pchnę go na stos, kiedy wrócę do niego później, mapa nie odpowiada.

Próbowałem to naprawić, przenosząc moje połączenie dosetupMaps(); wonResume(), jednak to spowodowałogMaps być null, gdy go otrzymamgMaps = mapFragment.getMap(); wsetViews().

Jak mam sobie z tym poradzić?

    @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();
    }

questionAnswers(3)

yourAnswerToTheQuestion