我有一个使用自定义布局和相当复杂的视图层次结构的对话框片段。对话框片段的代码大致类似于以下内容。
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
类?