Android主题使用AppCompat的奇怪行为

时间:2014-02-05 19:27:05

标签: android themes android-manifest

使用AppCompat主题我遇到了问题。我有这段代码:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"></style>

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="titleTextStyle">@style/MyActionBarTitleText</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@android:color/white</item>
</style>

<style name="MyActionBarTabText" parent="@style/Widget.AppCompat.ActionBar.TabText">
    <item name="android:textColor">@android:color/white</item>
</style>

<style name="AppTheme.Light" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="actionOverflowButtonStyle">@style/MyActionBarOverflowButton</item>
</style>

<style name="MyActionBarOverflowButton" parent="@style/Widget.AppCompat.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_overflow</item>
</style>

我想根据用户选择更改主题。默认情况下,主题是'AppTheme',用户可以选择的主题是'AppTheme.Light'。

现在奇怪的是。如果我在清单中设置'AppTheme.Light'

  

android:theme =“@ style / AppTheme.Light”&gt;

标题文字颜色按预期更改为白色,但如果我以编程方式设置主题

  

ctx.setTheme(R.style.AppTheme_Light);

一切都改变了,包括溢出按钮,但标题文字颜色没有。为什么会这样?

如何通过以编程方式设置主题来更改标题文字颜色?

非常感谢你!

0 个答案:

没有答案