我有从另一个片段调用的自定义DialogFragment
:
final CustomCalendarDialogFragment newFragment = new CustomCalendarDialogFragment("CHOOSE_WEEK");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (newFragment.isAdded()){
newFragment.getDialog().show();
} else {
newFragment.show(getFragmentManager(), "CUSTOM_CALENDAR");
}
}
});
在CustomCalendarDialogFragment
中,当按下“OK”时:
getDialog().hide();
按下“OK”后,DialogFragment
隐藏,但当我解锁屏幕时,DialogFragment
显示。如何消除?
1条答案
按热度按时间monwx1rj1#
可以在片段视图的
tag
属性中跟踪显示/隐藏对话框的状态。在
onCreateView()
中初始设置为true(相当于所示无论何时显示/隐藏它,请将其设置为true/false:
调用
getDialog().hide();
时设置newFragment.requireView().setTag(false);
当应用程序转到后台时,检查
onResume()
上的标记,看看是要保持对话框显示还是隐藏它: