2014-12-12 3 views
0

У меня есть активность, в которой есть два фрагмента. Когда приложение загружается, фрагмент A с mapview загружается transaction.add(R.id.fragment_container, fragmentA).commit();Фрагмент назад навигация с Mapview не работает как ожидалось

У меня есть боковое меню, и когда я выбираю элемент на нем, загружается второй фрагмент.

Fragment fragmentB = new FragmentB(); 
Bundle args = new Bundle(); 
fragmentB .setArguments(args); 
FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
transaction.replace(R.id.fragment_container, fragmentB); 
transaction.addToBackStack(null); 
transaction.commit(); 

Но когда я нажимаю кнопку «Назад» от фрагмента Б, приложение выходит.

Так я добавил код, приведенный ниже, чтобы MainActivity

@Override 
    public void onBackPressed() { 
     if (getFragmentManager().getBackStackEntryCount() > 0){ 
      getFragmentManager().popBackStack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 

Теперь нагрузка фрагмента A, но карта статична и не анимировать текущее местоположение, хотя у меня есть код, чтобы переместить камеру к текущему местоположению в onCreateView методе (setUpMapIfNeeded() внутри onCreateView())

private void setUpMapIfNeeded() { 
     if (mMap == null) { 
      mMap = mapView.getMap(); 
     } 
     if(mMap!=null){ 
      mMap.setMyLocationEnabled(true); 
      CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(0, 0)).zoom(17).build(); 
      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
     } 
    } 

Все методы жизненного цикла становятся все называют в Fragmenta, но MapView не показывает текущее местоположение.

Любая помощь приветствуется.

ответ

0

Вам необходимо инициализировать API Карт Google. См. Документы here.

Звонок MapsInitializer.initialize(context); до mapView.getMap();

Смежные вопросы