Chcę móc przełączać się między fragmentem listy a fragmentem mapy przez użytkownika naciskającego przycisk paska akcji. Obecnie mogę przełączać się między nimi dobrze, ale używam wskaźnika pustego, gdy próbuję uzyskać rzeczywisty obiekt GoogleMap z fragmentu. Kiedy próbuję przenieść kamerę, nie porusza się z powodu zerowania obiektu GoogleMap i pomijania tego kodu. Nie jestem pewien, czy to musi być spowodowane faktem, że nigdy nie stworzyłem fragmentu z xml, a raczej używam tylko kodu? Mój kod jest następujący:Zamień między fragmentami mapy i fragmentu mapy w Androidzie
public class MapFragment extends SherlockMapFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = super.onCreateView(inflater, container, savedInstanceState);
return root;
}
}
@Override
public void swapFragments() {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
if (listFragment.isVisible()) {
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
transaction.replace(R.id.root, mapFragment);
} else {
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
transaction.replace(R.id.root, listFragment);
}
transaction.commit();
}
@Override
public void setupMapFragment() {
mapFragment = new MapFragment();
mMap = mapFragment.getMap();
if (mMap != null) {
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(BuzzbabaApplication.latitude,
BuzzbabaApplication.longitude), 14));
}
}
Hmm ... więc obecnie mój główny układ ma tylko FrameLayout, którego używam do wstawiania różnych fragmentów list, chciałem uniknąć wstawiania fragmentu mapy, ponieważ będę go od razu ukrywać, dopóki nie klikną coś, ale czy to jedyna opcja? – egfconnor
Nieważne, dodałem wywołanie zwrotne do MapFragment w onActivityCreated, które sygnalizuje, że GoogleMap nie jest pusta i jest gotowa. Wydaje się, że to bezpieczne miejsce. – egfconnor
Tak, dodając wywołanie zwrotne jest dobrym sposobem na obejście tego również. Ładne rozwiązanie. –