【问题标题】:Holo-themed App falls back to default Android themeHolo 主题应用回退到默认 Android 主题
【发布时间】: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 文件,一个在valuesvalues-v11values-v14 文件夹中分别。默认styles.xml设置

<style name="AppBaseTheme" parent="android:Theme">

values-v11 集合中的styles.xml

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">

最后是styles.xmlvalues-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


    【解决方案1】:

    最后,在几次不成功的清理之后,我采取了不同的方法并尝试将AppTheme 重命名为MyTheme(并相应地更新AndroidManafest.xml 中的引用)。现在,该应用为每个 Android 版本引用了正确的 AppBaseTheme。

    【讨论】:

      猜你喜欢
      • 2012-10-26
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2015-10-28
      相关资源
      最近更新 更多