Я пытаюсь сохранить текущую позицию StreetViewPanorama в StreetViewFragment, например, если пользователь изначально находится в Portrait и изменяет местоположение в StreetViewPanorama, нажав на стрелки и исследуя область и затем переключается на Пейзаж. Я хочу установить последнее место для восстановления, чтобы пользователь мог продолжить изучение области. В настоящее время streetViewPanorama является Null, когда я пытаюсь получить доступ к «streetViewPanorama.getLocation()», но это не проблема. Я думаю, что мой способ спасти государство не прав, и должен быть лучший способ. Поэтому я прошу ваших предложений, пожалуйста!Сохранение состояния StreetViewFragment при изменении ориентации
Это код моего StreetViewFragment в:
public class StreetViewFragment extends ViperFragment implements OnStreetViewPanoramaReadyCallback,
PropertyDetailsStreetView {
private static final String KEY_PROPERTY_ID = "property_id_street_view";
private static final String KEY_PROPERTY_LAT = "property_lat";
private static final String KEY_PROPERTY_LON = "property_lon";
private Bundle savedInstances;
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
streetViewPanoramaFragment = (StreetViewPanoramaFragment)
getActivity().getFragmentManager().findFragmentById(R.id.streetviewpanorama);
streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
savedInstances = savedInstanceState;
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putDouble(KEY_PROPERTY_LAT, streetViewPanorama.getLocation().position.latitude);
outState.putDouble(KEY_PROPERTY_LON, streetViewPanorama.getLocation().position.longitude);
super.onSaveInstanceState(outState);
}
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
this.streetViewPanorama = streetViewPanorama;
presenter.onStreetViewPanoramaReady(getArguments().getLong(KEY_PROPERTY_ID));
if (savedInstances != null) {
this.streetViewPanorama.setPosition(
new LatLng(savedInstances.getLong(KEY_PROPERTY_LAT),
savedInstances.getLong(KEY_PROPERTY_LON)));
}
}
Благодарим вас за предложение, но я не хочу распространять фрагмент Google. –