mapas do Android param de responder após retomar o fragmento
Listado abaixo está o meu código básico para controlar os mapas. Eu faço algumas coisas muito avançadas depois. Tudo parece funcionar perfeito, atéonResume()
.
Aqui está o layout, você navega pelo aplicativo em uma única atividade, com vários fragmentos. estemapFragment
está contido dentro de um fragmento. Isso funciona bem. No entanto, quando eu adiciono outro fragmento e empurro este na pilha de trás, quando eu volto para ele mais tarde, o mapa não responde.
Eu tentei consertar isso movendo minha chamada parasetupMaps();
noonResume()
, no entanto isso causougMaps
para ser nulo quando eu recebê-lo degMaps = mapFragment.getMap();
nosetViews()
.
Como devo lidar com isso?
@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();
}