2014-03-12 63 views
0

我有兩個或更多的android dialogs。所有這些都顯示出來了,但一個對話框與另一個對話框重疊 如何知道,屏幕上顯示的是什麼對話框? 像這樣:如何知道,屏幕上有什麼android對話框?

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

回答

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」。

0

我猜你想知道當前視圖具有焦點。

您可以使用getCurrentFocus()

繼續閱讀here

0

對話框中有一個isShowing()方法,如果對話框是目前可見時,應該返回。因此,您可以使用它來查看是否顯示或解散對話框。

在你的情況的代碼段將(可能不是完美的解決方案),

if(dialog1.isShowing()) 
{ 

} 
else if(dialog2.isShowing()) 
{ 
} 
+0

當我調用isShowing()時,我的對話框都返回「true」,因爲它們顯示,但第一個對話框與第二個對話框重疊。 – vitkt

+0

@vitkt你可以把屏幕截圖plz.It將有助於知道真正的問題。 –

相關問題