2012-12-21 32 views
7

有沒有辦法通過編程檢測通知區域是位於屏幕的頂部還是位於右下角(就像大多數平板電腦一樣)?如何檢測通知區域的位置?

+1

這是一個很好的問題,但爲什麼?你對這些知識有什麼惡意? :-p – AedonEtLIRA

+4

注意:讓事情變得複雜一點Nexus 7是一款平板電腦,它的通知沿着頂部而不是在右下方。 – FoamyGuy

+1

@FoamyGuy走一致! – AedonEtLIRA

回答

4

通知總是以25dp高的狀態欄在顯示器的頂部所示,除了sw600設備(即,在任何方向的最小寬度是爲600dp;參見this blog post更多信息)上API級別11(蜂巢)到16(Jelly Bean pre-MR1)。在這些設備上,顯示器底部有一個48dp高的「組合系統欄」。

最簡單的方法來檢查這是通過合格的資源;也就是說,將頂部狀態欄假設佈局放在layout/foo.xml中,但在layout-sw600dp/foo.xml中有一個底部系統欄版本。最後,由於這些大型設備現在使用Android 4.2(API 17)的頂級狀態欄,因此您需要切換回layout-sw600dp-v17/foo.xml中的頂級狀態欄版本。

如果你只是想要一個布爾值,會告訴你的狀態欄是否是在頂部,在上面的例子與values取代layout,並放置一個<bool>爲即除了在values-sw600dp情況也是一樣的。