在使用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大)之外,有没有办法支持不同的屏幕?
编辑:我已经使用了small / medium / large / xlarge限定符模式,因为我想支持的最小版本是2.2。我还使用port
和land
限定符,而Android在布局方面的决策更加明确,但上述问题仍然存在。
答案 0 :(得分:0)
您可能认为自己没有结合两个或更多限定符吗?例如,您可以编写layout-w320p-h240p,使布局为320x240