我有两个或更多个android dialogs。显示了所有这些,但是一个对话框与另一个对话框重叠。 怎么知道,屏幕上有什么对话框? 像这样:
dialog1.show();
dialog2.show();
// dialog1.isOnScreen() == false; dialog2.isOnScreen() == true;
// Because dialog2 overlaps dialog1
答案 0 :(得分:0)
答案 1 :(得分:0)
Dialog有一个isShowing()
方法,如果对话框当前可见,则该方法应返回。因此,您可以使用它来查看对话框是否正在显示或解除。
在您的情况下,代码段将是(可能不是完美的解决方案),
if(dialog1.isShowing())
{
}
else if(dialog2.isShowing())
{
}
答案 2 :(得分:0)
我解决了这个问题:
public static boolean isActiveDialog(Dialog dialog) {
if (!dialog.isShowing())
return false;
Window dialogWindow = dialog.getWindow();
if (dialogWindow != null) {
View decorView = dialogWindow.getDecorView();
if (decorView != null)
return decorView.hasWindowFocus();
}
return false;
}
但如果应用程序不在屏幕上,该功能将返回" false"。