Fragment に GoogleMap を表示しています。画面を回転させるとマップがリロードされます。GoogleMaps アプリでマップがリロードされない (マップが消え、灰色の画面が再び表示される)
私のコード:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_map, container,
false);
mMapView = (MapView) v.findViewById(R.id.map);
mMapView.onCreate(savedInstanceState);
mMapView.onResume();
if(savedInstanceState == null){
try {
MapsInitializer.initialize(getActivity().getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
}
if(googleMap == null){
googleMap = mMapView.getMap();
//map settings
googleMap.setMyLocationEnabled(true);
googleMap.setIndoorEnabled(false);
googleMap.setTrafficEnabled(false);
googleMap.getUiSettings().setTiltGesturesEnabled(false);
googleMap.getUiSettings().setMapToolbarEnabled(false);
}
if(savedInstanceState == null) {
Location myLocation = getMyLocation();
if (myLocation != null) {
double myLatitude = myLocation.getLatitude();
double myLongitude = myLocation.getLongitude();
CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(myLatitude, myLongitude)).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
}
return v;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mMapView.onSaveInstanceState(outState);
}
// and ofcouse onResume, OnPause, OnCreated and onLowMemory
カメラの位置は保持されますが、マップは保持されません。再読み込みには時間がかかり、見栄えも悪くなります。Google マップ アプリのように地図が再読み込みされないようにするにはどうすればよいですか?
この質問を見てみましたが、向きの変更を禁止したくありません。