非常に複雑なビュー階層を持つカスタム レイアウトを使用するダイアログ フラグメントがあります。ダイアログ フラグメントのコードは、次のようになります。
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
クラスを直接処理する必要がありますか?