怎么知道,屏幕上有什么android Dialog?

时间:2014-03-12 08:41:15

标签: android dialog

我有两个或更多个android dialogs。显示了所有这些,但是一个对话框与另一个对话框重叠。 怎么知道,屏幕上有什么对话框? 像这样:

dialog1.show();
dialog2.show();
// dialog1.isOnScreen() == false; dialog2.isOnScreen() == true; 
// Because dialog2 overlaps dialog1

3 个答案:

答案 0 :(得分:0)

我想你想知道当前View有哪些重点。

您可以使用getCurrentFocus()

继续阅读here

答案 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"。