Android Maps reagieren nicht mehr, nachdem das Fragment fortgesetzt wurde
Im Folgenden ist mein Basiscode für die Steuerung der Karten aufgeführt. Ich mache später ein paar wirklich fortgeschrittene Sachen. Alles scheint perfekt zu funktionieren, bisonResume()
.
Hier ist das Layout, Sie navigieren durch die App in 1 einzelnen Aktivität mit mehreren Fragmenten. DiesemapFragment
ist in einem Fragment enthalten. Das funktioniert gut. Wenn ich jedoch ein weiteres Fragment hinzufüge und dieses auf den hinteren Stapel schiebe, reagiert die Karte nicht mehr, wenn ich später darauf zurückkomme.
Ich habe versucht, dies zu beheben, indem ich meinen Anruf auf verschoben habesetupMaps();
in dieonResume()
dies verursachte jedochgMaps
null sein, wenn ich es bekommegMaps = mapFragment.getMap();
in demsetViews()
.
Wie soll ich damit umgehen?
@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();
}