在使用Android的同時工作和學習,我注意到它的佈局切換功能出現了一些奇怪/意外/未被記錄的行爲,對此我還沒有找到答案。Android版面限定符使用方法
首先,如文檔所示,寬度和高度限定符(例如layout-w320dp
和layout-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。我也使用port
和land
限定符,Android在佈局中的決策更加清晰,但前述問題依然存在。