在工作和学习的同时使用 Android,我注意到它的布局切换功能有一些奇怪/意外/不那么记录的行为,对此我还没有找到答案。
首先,正如文档所建议的那样,宽度和高度的限定符,例如layout-w320dp
并且layout-h320p
应该使用“标准”值 - 240、320、480、600 等等。虽然文档还提到考虑了有效可用空间,但没有进一步提及这如何影响高度。例如,通过getResources().getConfiguration().screenHeightDp
在 320dp 大模拟器屏幕上调用,返回的可用高度为 295。因此,使用layout-h320p
是不准确的,因为它不会在 320dp 屏幕上正确“激活”。
我正在写的关于适应小屏幕的东西有(应该有)处理两种情况的能力:一种是宽度不够,另一种是高度不够。我发现我无法强制模拟器为我的情况选择正确的布局:我有一个文件夹layout-w320p
用于layout-h240p
. 在具有 320p 可用高度和 480p 可用宽度的模拟器上运行时,layout-w320p
负载。怎么能均匀处理这两种情况呢?不能同时指定宽度和高度限定符。
第三,如果一个人想要支持一个应用程序直到 2.2,除了通过“经典”限定符(小、中、大、x-large)之外,还有什么方法可以支持不同的屏幕?
编辑:我使用了 small/medium/large/xlarge 限定符模式,因为我想要支持的最低版本是 2.2。我也使用了port
andland
限定符,Android 在布局中的决策通过这种方式更加清晰,但上述问题仍然存在。