1、重写onDismiss()方法
当窗口关闭(执行了dismiss或者点击了外部区域,或者按了返回键),此方法执行。但是不要调用父类的onDismiss方法,否则当前fragment就会被移除。我们想要的是fragment还在,只是关闭掉内部弹框,也是隐藏视图。
@Override
public void onDismiss(DialogInterface dialog) {
//丢弃super.onDismiss(dislog);
onSave();
}
2、点击save按钮时调用dialog.dismiss()方法,不要直接调用dismiss
getDialog().dismiss();
该方法最终还是会调用onDismiss()方法
3、关闭当前fragment
当任务异步任务执行完了以后,还要移除第一个DialogFragment。
@Override
public void showSuccess() {
//移除fragment
dismissAllowingStateLoss();
}
总结
DialogFragment可以简单的理解成Fragment+Dialog,onDismiss()方法是dialog关闭的回调,DialogFragment使用很简单,show()和dismiss()两个方法足以。