【发布时间】:2012-11-22 04:57:30
【问题描述】:
我的问题是一个 Android 应用程序,它使用 android:Theme 作为默认样式,android:Theme.Holo.Light 用于版本 11 及更高版本的操作系统,android:Theme.Holo.Light.DarkActionBar 用于 v14 及更高版本。
应用项目是使用 ADT Eclipse-wizzard 创建的,所以AndroidManifest.xml 设置了android:theme="@style/AppTheme",并且有三个styles.xml 文件,一个在values、values-v11 和values-v14 文件夹中分别。默认styles.xml设置
<style name="AppBaseTheme" parent="android:Theme">
values-v11 集合中的styles.xml
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
最后是styles.xml 在values-v14 集合中
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
这在相当长的一段时间内运行良好。我使用模拟器和 Galaxy SIII 上的 Holo 主题检查了姜饼的外观。
但是现在,三星手机也只会使用经典的android:Theme,不管我在style.xmls 中设置了什么。我还尝试将AndroidManifest.xml 中的minSdkVersion 提高到16,并将Holo 主题设置为默认styles.xml。清理和重建也没有效果。
应用程序很高兴地忽略了 Holo 主题,我不知道还有什么地方可以尝试解决问题。
非常感谢任何帮助或指点。
更新
如果我替换
android:theme="@style/AppTheme"
在AndroidManifest.xml 中
android:theme="@style/AppBaseTheme"
一切正常(AppBaseTheme 是自定义平台无关AppTheme 的平台相关父主题)。不知何故,它看起来好像 Android 运行时是懒惰的,并不关心寻找最具体的 AppBaseTheme 版本,而是总是选择在 values/styles.xml 中找到的那个
【问题讨论】:
标签: android themes android-theme