我有一些麻烦为姜饼或旧版本的android提供不同的样式资源。
我定义了2个不同的样式页面。正常的样式和样式-v11。 对于Android 3.0和UP工作正常,一切都很好。我的问题是,当我尝试使用姜饼时,它会忽略样式的变化。
样式:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Styles for v1 to v10
-->
<style name="AppBaseTheme" parent="android:Theme.Light"></style>
<style name="DarkTheme" parent="android:Theme"></style>
<style name="Performance" parent="android:Theme"></style>
<style name="LightTheme" parent="android:Theme.Light"></style>
<style name="ColorsTheme" parent="android:Theme.Holo"></style>
<style name="OsuTheme" parent="android:Theme.Light"></style>
<style name="BrazilTheme" parent="android:Theme"></style>
<style name="NeonTheme" parent="android:Theme">
<item name="android:windowBackground">@android:color/black</item>
</style>
</resources>
样式-V11:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Styles v11
-->
<style name="AppBaseTheme" parent="android:Theme.Light"></style>
<style name="DarkTheme" parent="android:Theme.Holo"></style>
<style name="Performance" parent="android:Theme.Holo"></style>
<style name="LightTheme" parent="android:Theme.Holo.Light"></style>
<style name="ColorsTheme" parent="android:Theme.Holo"></style>
<style name="OsuTheme" parent="android:Theme.Holo.Light"></style>
<style name="BrazilTheme" parent="android:Theme.Holo"></style>
<style name="NeonTheme" parent="android:Theme.Holo">
<item name="android:windowBackground">@android:color/black</item>
</style>
</resources>
我的应用程序有一个设置来检查哪个主题是活动的。
switch (ThemesActivity.newTheme) {
case ThemesActivity.THEME_DARK:
setTheme(R.style.DarkTheme);
setContentView(R.layout.activity_main_dark);
break;
case ThemesActivity.THEME_LIGHT:
setTheme(R.style.LightTheme);
setContentView(R.layout.activity_main_light);
break;
case ThemesActivity.THEME_COLORS:
setTheme(R.style.ColorsTheme);
setContentView(R.layout.activity_main_colors);
break;
case ThemesActivity.THEME_NEON:
setTheme(R.style.NeonTheme);
setContentView(R.layout.activity_main_neon);
break;
case ThemesActivity.THEME_PERF:
setTheme(R.style.Performance);
setContentView(R.layout.activity_main_performance);
break;
case ThemesActivity.THEME_OSU:
setTheme(R.style.OsuTheme);
setContentView(R.layout.activity_main_osu);
break;
case ThemesActivity.THEME_BRAZIL:
setTheme(R.style.BrazilTheme);
setContentView(R.layout.activity_main_brazil);
break;
default:
setTheme(R.style.DarkTheme);
setContentView(R.layout.activity_main_dark);
break;
}
问题是姜饼中哪个主题活跃无关紧要!总是加载默认的应用主题:(
我无法弄清楚出现了什么问题以及为什么主题更改不适用于旧版本。
非常感谢。
编辑:
我也尝试过使用:
<style name="OsuTheme" parent="@android:style/Theme.Light"></style>
仍然相同:(主题在运行时不会改变,只有在清单上设置主题时才会改变。
在清单上主题起作用,问题是我在运行时尝试更改它。
答案 0 :(得分:1)
<style name="LightTheme" parent="android:Theme.Light"></style>
<style name="ColorsTheme" parent="android:Theme.Holo"></style>
主要问题是Gingerbread没有您扩展的主题的样式资源。这就是它加载默认资源的原因。