У меня есть фрагмент диалога, который отображает представление. Когда я показываю вид, он работает нормально. Хотя, когда я меняю его ориентацию с альбомной/портретной или наоборот, фрагмент диалога исчезает. Я пробовал несколько предложений, хотя ни одно из них не сработало.
Вот сокращенная версия моего фрагмента диалога, я добавил onSaveInstanceState для сохранения состояния и попытался вызвать его в onCreateView. Хотя это не работает. Любые советы, которые помогут решить эту проблему, очень ценятся. Джим
public class BalanceOverlay extends DialogFragment implements View.OnClickListener {
public BalanceOverlay() {
// Empty constructor is required for DialogFragment
// Make sure not to add arguments to the constructor
// Use `newInstance` instead as shown below
}
public static BalanceOverlay newInstance(String title) {
BalanceOverlay frag = new BalanceOverlay();
Bundle args = new Bundle();
args.putString("Balance - The Center of the Plate", title);
frag.setArguments(args);
return frag;
}
@Override
public void onDestroyView() {
if (getDialog() != null && getRetainInstance()) {
getDialog().setDismissMessage(null);
}
super.onDestroyView();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
bview= inflater.inflate(R.layout.balance, container);
//setRetainInstance(true);
return bview;
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putLong("param", value);
}
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null){
value = savedInstanceState.getLong("param");
}
DialogFragment
? - person Darwind   schedule 04.09.2018setRetainInstance(true)
? - person Darwind   schedule 04.09.2018setRetainInstance(true)
заставитFragment
пережить изменения конфигурации, поэтомуonSaveInstanceState
не вызывается при повороте экрана. Это может быть вызвано, если вы переместите приложение в фоновый режим, а Android собирает мусор. Вы пробовали ответ, на который я ссылался, гдеonDestroy
переопределяется? - person Darwind   schedule 04.09.2018setRetainInstance(true)
.onSaveInstanceState
никогда не гарантированно вызывается. Возможно, взгляните на этот пост о сохранении и восстановлении состояния экземпляра: inthecheesefactory. com/blog/ Слишком много информации, чтобы уместиться в одном комментарии ;-) - person Darwind   schedule 04.09.2018onSaveInstanceState
? Многие вещи уже автоматически сохраняются различными виджетами. - person Darwind   schedule 05.09.2018