我有兩個或更多的android dialogs。所有這些都顯示出來了,但一個對話框與另一個對話框重疊 如何知道,屏幕上顯示的是什麼對話框? 像這樣:如何知道,屏幕上有什麼android對話框?
dialog1.show();
dialog2.show();
// dialog1.isOnScreen() == false; dialog2.isOnScreen() == true;
// Because dialog2 overlaps dialog1
我有兩個或更多的android dialogs。所有這些都顯示出來了,但一個對話框與另一個對話框重疊 如何知道,屏幕上顯示的是什麼對話框? 像這樣:如何知道,屏幕上有什麼android對話框?
dialog1.show();
dialog2.show();
// dialog1.isOnScreen() == false; dialog2.isOnScreen() == true;
// Because dialog2 overlaps dialog1
我解決了這個問題:
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」。
對話框中有一個isShowing()
方法,如果對話框是目前可見時,應該返回。因此,您可以使用它來查看是否顯示或解散對話框。
在你的情況的代碼段將(可能不是完美的解決方案),
if(dialog1.isShowing())
{
}
else if(dialog2.isShowing())
{
}
當我調用isShowing()時,我的對話框都返回「true」,因爲它們顯示,但第一個對話框與第二個對話框重疊。 – vitkt
@vitkt你可以把屏幕截圖plz.It將有助於知道真正的問題。 –