я имею эту проблему с MapView внутри моего макета:MapView показать укомплектовать после экран включается снова
раз добавил он показывает кнопки, логотип Google, сетки, но нет карты. Чтобы сделать его видимым, я должен выключить экран и затем включить его. В чем проблема?
Вот мой код
mapView = (MapView) geo.findViewById(R.id.map_view);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
final LocationManager lm = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
lastKnownLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(lastKnownLocation == null) {
askLocationRefreshInitMapView(lm);
} else {
if((System.currentTimeMillis() - lastKnownLocation.getTime()) > THIRTY_MINUTES) {
askLocationRefreshInitMapView(lm);
} else {
initMapView(lastKnownLocation);
}
}
private void initMapView(final Location location) {
lastKnownLocation = location;
// Gets to GoogleMap from the MapView and does initialization stuff
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap map) {
map.getUiSettings().setMyLocationButtonEnabled(false);
map.setMyLocationEnabled(true);
// Needs to call MapsInitializer before doing any CameraUpdateFactory calls
try {
MapsInitializer.initialize(getActivity());
} catch (Exception e) {
e.printStackTrace();
}
// Updates the location and zoom of the MapView
if(location != null) {
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 10);
map.moveCamera(cameraUpdate);
map.animateCamera(cameraUpdate);
}
map.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
}
});
}
Я сделал это, но положил onMapReady на свой фрагмент и реализовал его, как было предложено, ничего не показывать. По крайней мере, до того, как она показала сетку. Поэтому я попытался поместить mapView.onResume(); как последний метод onMapReady, и теперь отображает карту ... но это очень странно, и я не могу понять, почему ... – tassadar
Я попытался вставить карту внутри макета фрагмента xml, а не раздувать его динамически, и он работает. Поэтому проблема связана с раздуванием нового макета во время выполнения и приложением его к макете фрагмента. Кто-то может помочь мне разобраться в динамически раздутой апробации? – tassadar
@tassadar SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager(). FindFragmentById (R.id.where_are_they_map); mapFragment.getMapAsync (this); –