我创建了一个PreferenceActivity,允许用户选择他想要应用于整个应用程序的主题.
当用户选择主题时,执行以下代码:
if (...) {
getApplication().setTheme(R.style.BlackTheme);
} else {
getApplication().setTheme(R.style.LightTheme);
}
Run Code Online (Sandbox Code Playgroud)
但是,即使我已经使用调试器检查了代码是否正在执行,我也看不到用户界面的任何变化.
主题是定义的res/values/styles.xml,Eclipse没有显示任何错误.
<resources>
<style name="LightTheme" parent="@android:style/Theme.Light">
</style>
<style name="BlackTheme" parent="@android:style/Theme.Black">
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
关于可能发生的事情以及如何解决问题的任何想法?我应该拨打setTheme代码中的任何特殊点吗?如果有帮助,我的应用程序包含几个活动.
我在Google Design App Bar指南中看到了扩展高度应用栏.如何在Android Lollipop中实现这些功能?

我想改变动作栏的大小.我尝试过以下编码.
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/CustomActionBar</item>
</style>
<style name="CustomActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<!-- <item name="android:background">@drawable/action_bar_style</item> -->
<item name="android:actionBarSize">15dp</item>
<item name="android:background">@drawable/header_bar</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但是动作栏的大小并没有改变.还有另外一种方法吗?我正在使用api 11级.
谢谢.