我有两个或多个android对话框。所有的对话框都显示出来了,但是一个对话框重叠另一个对话框。怎么知道屏幕上有什么对话?这样的:
dialog1.show();
dialog2.show();
// dialog1.isOnScreen() == false; dialog2.isOnScreen() == true;
// Because dialog2 overlaps dialog1
我猜你想知道当前视图有焦点。
可以使用getCurrentFocus()
继续阅读
Dialog有一个isShowing()
方法,如果对话框当前可见,该方法应该返回。你可以用它来查看一个对话框是显示还是关闭。
在您的情况下,代码片段将是(可能不是完美的解决方案),
if(dialog1.isShowing())
{
}
else if(dialog2.isShowing())
{
}
我解决了这个问题:
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"