2

阅读完此处的文档后,我仍然对如何使用命名方案来正确设置不同设备的布局感到有些困惑。

我特别需要 Galaxy S3、Nexus 7 和 Asus Transformer 的布局。

我目前正在使用:

S3:
    layout-normal
    layout-normal-land

Nexus 7:
    layout-large
    layout-large-land

Transformer:
    layout-xlarge
    layout-xlarge-land

这是正确的,还是有办法更具体地定位设备?

4

1 回答 1

3

您的示例使用小/中/大/xlarge 存储桶的旧方式。这是有问题的,因为例如 Galaxy Tab 7.0 (1024x600) 和 Nexus 7 (1280x800) 都符合大尺寸标准。Nexus 7 可以处理平板电脑布局,但旧的 Tab 7.0 通常更适合手机布局。旧系统不支持这种区分,因此,从 Honeycomb 开始,您可以使用新的方式,它不依赖存储桶,而是使用实际屏幕大小dp来决定使用哪种布局。这使您可以更好地控制何时选择哪种布局。

查看您链接的文档中的声明平板电脑布局部分。它介绍了基于 dp 的选择器。您提到的三款设备都使用较新的 Android 版本,可以从“sw720dp”方法中受益。

还有一点,因为如果您的最低目标版本是 Gingerbread 或更早版本,您基本上必须同时支持 s/m/l/xl 存储桶和较新的基于 dp 的选择器。乍一看,这意味着您必须将所有平板电脑布局复制到多个目录中并手动保持同步。幸运的是,有一个技巧可以在不复制/粘贴布局定义的情况下完成这项工作。它涉及在该部分中使用布局别名。Android 教程的多屏部分values/记录了如何做到这一点。

于 2013-03-11T22:12:24.777 回答