我的问题是一个Android应用,它使用android:Theme
作为默认样式,android:Theme.Holo.Light
用于版本11及更高版本的操作系统,android:Theme.Holo.Light.DarkActionBar
用于v14及更新版本。
app项目是使用ADT Eclipse-wizzard创建的,因此AndroidManifest.xml
设置android:theme="@style/AppTheme"
,并且有styles.xml
个文件,values
中有values-v11
个{分别为{1}}和values-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-theme检查了姜饼的外观。
但是现在,三星手机也只会使用经典的android:Theme,无论我在style.xml
中设置什么。我还尝试将minSdkVersion
中的AndroidManifest.xml
提升为16,并将Holo主题设置为默认styles.xml
。清理和重建也没有效果。
应用程序很高兴地忽略了Holo主题,我不知道在哪里可以尝试解决问题。
非常感谢任何帮助或指示。
更新
如果我更换
android:theme="@style/AppTheme"
<{1>}中的
AndroidManifest.xml
一切正常(android:theme="@style/AppBaseTheme"
是与自定义平台无关的AppBaseTheme
)的平台相关父主题。它看起来好像Android运行时是懒惰的,并不关心查找AppTheme
的最具体版本,但始终采用AppBaseTheme
中找到的那个
答案 0 :(得分:1)
最后,在几次不成功的清理之后,我采用了不同的方法并尝试将AppTheme
重命名为MyTheme
(并相应更新AndroidManafest.xml
中的引用)。现在,该应用程序为每个Android版本引用了正确的AppBaseTheme。