Android 如何在旋转更改时将AlertDialog保持在DialogFragment的顶部
我有一个Android 如何在旋转更改时将AlertDialog保持在DialogFragment的顶部,android,android-alertdialog,android-dialogfragment,Android,Android Alertdialog,Android Dialogfragment,我有一个对话框片段,点击一个按钮就会打开一个警报对话框,在本例中,该对话框就是本例中的对话框。旋转设备时,我可以防止警报对话框消失,但它位于对话框片段后面。我怎样才能让它保持在上面 材质对话框 mDialog = new MaterialDialog.Builder(getContext()) .title(R.string.email_sent) .content(R.string.check_email) .inputT
对话框片段
,点击一个按钮就会打开一个警报对话框
,在本例中,该对话框就是本例中的对话框
。旋转设备时,我可以防止警报对话框
消失,但它位于对话框片段
后面。我怎样才能让它保持在上面
材质对话框
mDialog = new MaterialDialog.Builder(getContext())
.title(R.string.email_sent)
.content(R.string.check_email)
.inputType(InputType.TYPE_CLASS_NUMBER)
.positiveText(R.string.send)
.negativeText(R.string.cancel)
.inputRange(1, 10, ContextCompat.getColor(getContext(), R.color.red_900))
.input(R.string.activation_code, 0, new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
dialog.dismiss();
int userActivationCode = Integer.parseInt(input.toString());
peem.setActivationCode(userActivationCode);
mPresenter.createActivationCodePeem(peem);
}
}).onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
}
}).show();
DisplayUtil.keepDialog(mDialog);
保持旋转更改对话框
public static void keepDialog(MaterialDialog dialog) {
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.copyFrom(dialog.getWindow().getAttributes());
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(params);
}
销毁和重建AlertDialog?您不应该试图在屏幕上保留对话框,而是在需要时保存状态,并在旋转更改完成后使用旧的对话框重新打开对话框data@MatPag我该怎么做?试着在这里阅读一些关于这个主题的提示:我确实尝试过破坏和重建对话,但它仍在
对话框片段的后面
您确定要在将对话框片段添加到视图后重新创建对话框吗?您可能需要在DialogFragment的onCreateDialog或onCreateView之后创建AlertDialog,或者尝试从父活动或片段侦听onAttach事件