2012-11-09 57 views
2

在使用Android的同時工作和學習,我注意到它的佈局切換功能出現了一些奇怪/意外/未被記錄的行爲,對此我還沒有找到答案。Android版面限定符使用方法

首先,如文檔所示,寬度和高度限定符(例如layout-w320dplayout-h320p)應使用「標準」值 - 240,320,480,600等。雖然documentation也提到有效的可用空間被考慮在內,但它沒有進一步提及它如何影響身高。例如,通過在320dp大型仿真器屏幕上調用getResources().getConfiguration().screenHeightDp,返回的可用高度爲295.因此,使用layout-h320p是不準確的,因爲它不會在320dp屏幕上正確「激活」。

我寫的東西,關於適應小屏幕的東西有(應該有)處理兩種情況的能力:一種是沒有足夠的寬度,另一種是沒有足夠的高度。我發現的是,我不能強制模擬器爲我的情況選擇正確的佈局:我有一個文件夾layout-w320p,另一個文件夾layout-h240p。在具有320p可用高度和480p可用寬度的仿真器上運行時,將加載layout-w320p。一個人如何能夠平等地對待這兩種情況?不能同時指定寬度和高度限定符。第三,既然如果你想支持自己的應用直到2.2,除了用「經典」限定符(小,中,大,x大)的方式,還有什麼方法可以支持不同的屏幕嗎?

編輯:我採取了使用小/中/大/ xlarge限定符模式,因爲我想支持的最低版本是2.2。我也使用portland限定符,Android在佈局中的決策更加清晰,但前述問題依然存在。

回答

0

你可能沒有考慮過你可以結合兩個或多個限定符?例如,您可以編寫layout-w320p-h240p製作佈局320x240