2012-03-02 84 views
0

我希望我的應用能夠顯示永久可見的視圖(如狀態欄),無論用戶使用哪個應用,除了全屏應用(如遊戲)以外。如何在全屏應用程序啓動時隱藏系統覆蓋窗口?

到目前爲止,我的應用程序啓動了一個服務,該服務將視圖膨脹並將其作爲TYPE_SYSTEM_OVERLAY添加到WindowManager,如here所述。

我遇到的問題是,當我啓動一個全屏應用程序(畫廊,憤怒的小鳥等)時,我的覆蓋仍然存在。如何檢測全屏應用何時啓動或狀態欄已隱藏,以便我可以刪除它?

回答

1

這不支持第三方應用程序,對不起。

+0

我在公共API中找不到任何東西,但它絕對可行。有一個名爲「StatusBar +」的應用程序,展示了沒有根目錄的這種確切行爲。 – Martin 2012-03-02 08:09:44

0

在您的服務中,創建一個不斷測量其膨脹視圖高度的計時器。如果視圖高度增加25dip,則可能意味着狀態欄消失,手機現在處於全屏模式。如果發生這種情況,您可以將疊加視圖的可見性設置爲GONE。

很明顯,輪詢視圖高度是一種破解,但它可能是唯一的方法。

相關問題