У меня есть фрагмент диалога, использующий пользовательский макет с довольно сложной иерархией представлений. Код фрагмента диалога более-менее похож на следующий.
public class CardDetailDialog extends DialogFragment {
public CardDetailDialog() {
setRetainInstance(true);
setStyle(STYLE_NORMAL, android.R.style.Theme_Light);
}
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.card_detail_dialog, container, false);
/* Modify some view objects ... */
return view;
}
}
Всякий раз, когда я вызывал метод show()
для этого фрагмента диалога, я замечал, что всегда вызывается onCreateView
и процесс надувания макета повторяется. В моем приложении пользователь может захотеть показать диалог несколько раз во время сеанса, и я подумал, что это неэффективно. Есть ли способ сохранить экземпляр представления/диалога при нескольких вызовах show()
? Можно ли это сделать с помощью DialogFragment или мне нужно иметь дело напрямую с классом Dialog
?