Android 2.1 bug:使用res / layout-v3而不是res / layout

时间:2010-01-21 10:52:18

标签: android android-layout

除了常规res/layout文件夹,我还有res/layout-v3 用于向后兼容Android 1.5的文件夹,存在问题 有一些RelativeLayout布局。

它与所有经过测试的手机和仿真器版本完美配合 远。 2.1(模拟器和Nexus One)除外。他们选择展示 Android 1.5布局(res/layout-v3)而非默认res/ layout

其他人可以确认一下吗?这是Android操作系统错误吗?如果是的话,在哪里 是提交错误报告的最佳地点吗?


更新

再次阅读https://developer.android.com/guide/practices/screens_support.html#qualifiers后(感谢Mark提示),尤其是这部分

  

仅供a使用的资源   特定API级别或更高级别。对于   例如,如果您的应用程序是   旨在在Android 1.5上运行   (API级别3)和Android 1.6(API   4级及以上),你可以使用   -v4限定符,用于标记在您的时候应该排除的任何资源   应用程序在Android 1.5上运行   (API级别3)。

我改变了布局顺序

  • res / layout-v3(仅限Android 1.5 - >这是我做的错误假设)
  • res / layout(其他任何内容)

到我的新配置:

  • res / layout-v4(适用于Android 1.6及更高版本)
  • res / layout(其他任何内容 - >在这种情况下,这只是Android 1.5)

如果我理解上述文档是正确的,并且如果我在括号中的假设是正确的,那么它现在应该可以正常工作。但结果如下:

  • Android 1.5正在使用res / layout - >行
  • Android 1.6正在使用res / layout-v4 - >行
  • Android 2.0正在使用res / layout - > 不行
  • Android 2.1正在使用res / layout-v4 - >行

那么为什么Android 2.0(在Emulator和Motorola Milestone上)没有选择正确的布局资源文件夹呢?

我再用2.0.1测试它,它似乎在那里工作。所以这似乎是2.0中的一个错误,它在2.0.1中被修复了

但现在最奇怪的事情是:为了使它以某种方式在2.0上运行,我将res / layout-v4文件夹复制到res / layout-v5以使用此布局资源强制Android 2.0。没工作。但后来我尝试将它复制到res / layout-v6(应该是Android 2.0.1)并且突然之间它与2.0一起工作。很奇怪!但我希望这种解决方法能够帮助其他一些人。

1 个答案:

答案 0 :(得分:4)

我已经测试了几个设备和模拟器(虽然不是很彻底),并且所选资源文件夹似乎是更高版本< =设备版本的文件夹。