Android карты перестают отвечать после возобновления фрагмента
Ниже приведен мой основной код для управления картами. Я делаю некоторые действительно продвинутые вещи позже. Кажется, все работает идеально, пока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();
}