0

Я пытаюсь использовать карту google в acitivty пейджера фрагмента, поэтому карта стоит за пейджером и все еще может взаимодействовать с ней, но что бы я ни делал, я получаю null исключения.Вызвать mapfragment в AppCompatAcivity

я пытался использовать SupportMapFragment как это:

SupportMapFragment mapFragment = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.Map)); 
     mapFragment.getMapAsync(this); 

Но getChildFragmentManager не может быть решена, потому что это AppCompatActivity я думаю. есть ли другой способ сделать это? Является ли это возможным? Благодарю.

+0

Просто измените на getSupportFragmentManager() –

ответ

3

Попробуйте добавить его динамически вместо этого.

 MapFragment mMapFragment = MapFragment.newInstance(); 
     FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
     fragmentTransaction.add(R.id.llMapContainer, mMapFragment, "map"); 
     fragmentTransaction.commit(); 

, иначе вы можете получить фрагмент карты, как этот

 mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)); 
     if (mapFragment != null) { 
      mapFragment.getMapAsync(new OnMapReadyCallback() { 
       @Override 
       public void onMapReady(GoogleMap map) { 
        loadMap(map); 
       } 
      }); 
     } 
+0

спасибо! я сделал это динамически и работал очень хорошо: D –