2011-09-16 36 views

回答

65

經過幾小時的黑客攻擊後,嘗試使用一些黑魔法數學來計算中心,並嘗試使用Gravity.TOP對齊視圖,我發現了一篇使用Gravity.CENTER的文章。我在這裏收集我的發現,希望能爲別人節省一些痛苦。

popupWindow.showAtLocation(anyViewOnlyNeededForWindowToken, Gravity.CENTER, 0, 0); 

該視圖僅用於窗口令牌,它對位置沒有其他影響。

重力告訴佈局管理器在哪裏啓動座標系以及如何處理這些座標。我找不到文檔,但黑客向我顯示:

  • CENTER使用彈出窗口的中間對齊到指定的x,y。所以0,0是以屏幕爲中心的,沒有調整通知欄的大小。

Gravity.CENTER 0,0

  • BOTTOM使用彈出窗口的底部對齊,以在x,y規定。因此,0,0的彈出底部與屏幕底部對齊。如果你想10px填充,然後y = 10(不是-10)將彈出窗口向上移動10個像素。

Gravity.BOTTOM 0,10

  • TOP使用彈出窗口的頂部對齊到在x,y規定。因此,0,0的彈出式頂部與屏幕頂部對齊。如果你想要10px填充,那麼y = 10。 注意如果您不處於全屏模式,那麼您還必須對通知欄進行調整。

Gravity.TOP 0,48

  • Gravity.LEFT和Gravity.RIGHT現在應該是顯而易見的,因爲我的示例圖像他們是太大,以適應屏幕上,以便它們將被鎖定到屏幕大小減去填充我正在使用。
相關問題