为什么Android 2.3.3 7英寸平板电脑使用xlarge资源?

5
我的应用程序针对xlarge屏幕拥有不同的布局和样式,这很重要,因为在手机上只使用竖屏,在平板电脑上只使用横屏。
几天前,一位用户联系我,说自从我发布了带有平板电脑布局的更新后,他无法看到主活动中的某些对象(在此更新之前,我只有竖屏布局-也适用于平板电脑)。他使用运行Android 2.3.3的7英寸平板电脑,但出现了奇怪的问题,即它使用了xlarge目录中的布局和样式,而不是默认的布局和样式。
我在模拟器上进行了测试,并遇到了相同的问题。然后我只更改了Android版本到3.1(未更改宽度、高度和密度),结果按预期工作-使用了默认布局。
我不想使用版本限定符(layout-xlarge-v13),因为那样就会给具有xlarge屏幕的旧Android版本用户提供错误的布局。对于Android 3.2及以上版本,我可以使用sw720dp,但旧版本将无法使用,因此问题仍然存在。
我能够在运行时判断设备屏幕是否足够大以适用xlarge布局,但在这种情况下我该怎么办?是否有一种方法可以使用默认资源?

1
Android 2.3.3 模拟器未针对平板电脑进行正确设置,因为 Android 2.3.3 并非为平板电脑设计。这是该版本模拟器的已知限制。 - CommonsWare
我们能否看到您的项目结构是什么样子的?特别是/res结构... - LuxuryMode
1
此外,你所提到的这款7英寸平板电脑是指三星Galaxy Tab吗? - LuxuryMode
@LuxuryMode 用户所拥有的7英寸平板电脑是Overmax OV-TB-04。 - meir shapiro
1个回答

1

自从 Honeycomb 发布以来,Android 就不支持在运行 Gingerbread 或更早版本的 7 英寸平板电脑上使用。这意味着你的设备可能非常老旧或者不符合 CTS 标准。因此,你只能看到一小部分设备,它们:API 级别为 7-10(大致如此),大小为 7 到 10 英寸,在主要 Android 生态系统之外。

如果您想支持这些设备,我建议您创建 layout-large-v7 和 layout-large-v11。假设这些非标准平板电脑将选择第一个,所以请设计适用于低密度或中密度 1024x600 像素显示屏。


我无法在设备上进行测试,但模拟器在我添加后选择了layout-large。因此,现在我的大多数布局都在默认文件夹中,我在layout-xlarge中覆盖了一些布局,并将我覆盖的文件从默认文件夹复制到layout-large中。这样7英寸平板电脑就可以与手机具有相同的外观,而不使用xlarge资源。感谢您的提示。 - meir shapiro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接