2012-11-09 23 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