在阅读文档here之后,我仍然对如何使用命名方案正确设置不同设备的布局感到困惑。
我特别需要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
这是正确的,还是有办法更具体地定位设备?
答案 0 :(得分:3)
您的示例使用旧的小/中/大/ xlarge)桶。这是有问题的,因为例如Galaxy Tab 7.0(1024x600)和Nexus 7(1280x800)都有资格。 Nexus 7可以处理平板电脑布局,但旧的Tab 7.0通常更适合使用手机布局。旧系统不支持这种区别,因此,从Honeycomb开始,您可以使用新方法,该方式不依赖于桶,而是使用dp
中的实际屏幕大小来决定使用哪种布局。这使您可以更好地控制何时选择布局。
查看您关联的文档中的Declaring Tablet Layouts部分。它介绍了基于dp的选择器。您提到的三个设备都使用较新的Android版本,这些版本可以从“sw720dp”方法中受益。
还有一点,因为如果你的最低目标版本是Gingerbread或更早,你基本上必须支持s / m / l / xl桶和更新的基于dp的选择器。乍一看,这意味着您必须将所有平板电脑布局复制到多个目录中并手动保持同步。幸运的是,有一个技巧可以在不复制/粘贴布局定义的情况下完成这项工作。它涉及在values/
部分中使用布局别名。如何做到这一点记录在Android教程的multiscreen部分。