0

標記,這是我activity谷歌地圖沒有顯示在它

public class FindPeopleFragment extends Fragment implements OnMapReadyCallback { 
    private GoogleMap googleMap; 
    MapFragment fragment; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_find_people, container, false); 
     initilizeMap(); 
     return rootView; 
    } 

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 
    private void initilizeMap() { 
     MapFragment fragment = (MapFragment) getChildFragmentManager().findFragmentById(R.id.map1); 
     if (fragment != null) { 
      fragment.getMapAsync(this); 

     } 

    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     LatLng marker = new LatLng(44.797283, 20.460663); 

     googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
       new LatLng(44.797283, 20.460663), 12)); 

     googleMap.addMarker(new MarkerOptions() 
       .position(new LatLng(44.797283, 20.460663)) 
       .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))); 
     googleMap.setMyLocationEnabled(true); 

    } 

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 
    @Override 
    public void onPause() { 

     final FragmentManager fragManager = this.getFragmentManager(); 
     final Fragment fragment = fragManager.findFragmentById(R.id.map1); 
     if (fragment != null) { 
      fragManager.beginTransaction().remove(fragment).commit(); 
      super.onPause(); 

     } 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     final FragmentManager fragManager = this.getFragmentManager(); 
     final Fragment fragment = fragManager.findFragmentById(R.id.map1); 
     if (fragment != null) { 
      fragManager.beginTransaction().remove(fragment).commit(); 
     } 
    } 
} 

我使用導航抽屜顯示在地圖。我的地圖正在運行,但其上的標記未顯示。我已經使用了所有權限並很好地創建了xml文件。我不知道有什麼問題,我無法在任何地方找到解決方案。我認爲我遇到了問題,因爲我正在使用片段,但我需要它,因爲我正在使用導航抽屜。請任何人?給我一個解決方案,我卡在這

+0

是否能夠顯示地圖或什麼? –

+0

我已經實現了你的代碼,它的工作也很好 –

回答

0

你應該實現onMapReadyCallback,你應該設置標記,當地圖準備就緒。一旦在MapFragmentMapView對象上設置了此接口的實例,則在準備好使用地圖並提供GoogleMap的非空實例時,將觸發onMapReady(GoogleMap)方法。可能不會調用onMapReady()方法。嘗試實現從XML佈局檢索的SupportMapFragment對象。然後,致電getMapAsync()

supportMapFragment.getMapAsync(new OnMapReadyCallback() { 
@Override 
public void onMapReady(final GoogleMap googleMap) { 
    // ... 
} 
});