Android 如何将同一个DialogFragment显示两次或更多次
我的应用程序有一个按钮,当用户按下按钮时,它会显示一个自定义的Android 如何将同一个DialogFragment显示两次或更多次,android,android-dialogfragment,Android,Android Dialogfragment,我的应用程序有一个按钮,当用户按下按钮时,它会显示一个自定义的对话框片段。对话框片段如下所示: if(searchDialog == null) { searchDialog = new SearchElementDialog(); searchDialog.setOnItemClickListener(searchElementItemClickListener); } searchDialog.show (getFragmen
对话框片段。对话框片段
如下所示:
if(searchDialog == null)
{
searchDialog = new SearchElementDialog();
searchDialog.setOnItemClickListener(searchElementItemClickListener);
}
searchDialog.show (getFragmentManager(), "SearchElement");
当用户完成时,将以通常的方式调用disclose
,并删除该对话框。现在,当用户再次按下同一按钮时,我希望以与用户离开时相同的可见状态显示相同的对话框,调用上面第一个块中的代码确实会显示对话框,并且其可见状态会恢复,但是:
屏幕不会变暗,在对话框外按也不会关闭它,其后面的控件也不会响应
当软键盘进入视图时,对话框不会移动
一开始一切都很好。无法再次显示同一个对话框实例吗?如果隐藏并显示对话框而不是整个片段会怎么样
当您要取消呼叫时:
searchDialog.getDialog().dismiss();
当你想展示它时:
searchDialog.getDialog().show();
西马斯部分是对的<当显示对话框时,code>getDialog()
不会返回null
,但当没有显示对话框时会返回。我将其存储为类中的字段
mDialog=getDialog()
并随后致电
mDialog.show()
每次都有效。恐怕不行。getDialog返回null,除非该对话框已经可见,因此我无法使用它调用show。如果我调用getDialog().Disease()和searchDialog.show(),结果是一样的。@CurlyPaul是的,当你实例化它时,它会自动显示,但是当你用getDialog().Disease()
隐藏时,我很确定你以后可以用getDialog.show()
来显示它。