1

我的问题是一个 Android 应用程序,它android:Theme用作默认样式,android:Theme.Holo.Light适用于版本 11 及更高版本以及android:Theme.Holo.Light.DarkActionBarv14 及更高版本的操作系统。

该应用程序项目是使用 ADT Eclipse-wizzard 创建的,因此AndroidManifest.xml设置了android:theme="@style/AppTheme"、 和 三个styles.xml文件,分别位于valuesvalues-v11values-v14文件夹中。默认styles.xml设置

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

成套_ styles.xml_values-v11

<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中设置什么。我还尝试将minSdkVersionin提高AndroidManifest.xml到 16 并将 Holo-theme 设置为 default styles.xml。清理和重建也没有效果。

应用程序很高兴地忽略了 Holo 主题,我不知道还有什么地方可以尝试解决问题。

非常感谢任何帮助或指示。

更新

如果我更换

android:theme="@style/AppTheme"

AndroidManifest.xml

android:theme="@style/AppBaseTheme"

一切正常(AppBaseTheme是自定义平台无关的平台相关父主题AppTheme)。不知何故,它看起来好像 Android 运行时是懒惰的,并且不关心寻找最具体的版本AppBaseTheme,但总是采用在values/styles.xml

4

1 回答 1

1

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

于 2012-12-11T14:53:06.053 回答