Los mapas de Android dejan de responder después de reanudar el fragmento
A continuación se enumera mi código básico para controlar los mapas. Hago algunas cosas realmente avanzadas más tarde. Todo parece funcionar perfectamente, hasta queonResume()
.
Aquí está el diseño, navega a través de la aplicación en una sola actividad, con varios fragmentos. EstamapFragment
Está contenido dentro de un fragmento. Esto funciona bien. Sin embargo, cuando agrego otro fragmento y empujo este en la pila trasera, cuando vuelvo más tarde, el mapa no responde.
Intenté arreglar esto moviendo mi llamada asetupMaps();
en elonResume()
, sin embargo esto causógMaps
ser nulo cuando lo reciba degMaps = mapFragment.getMap();
en elsetViews()
.
¿Cómo debería manejar esto?
@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();
}