【问题标题】:Changing the action bar overflow icon to the dark version将操作栏溢出图标更改为深色版本
【发布时间】:2011-11-22 20:27:42
【问题描述】:

在我的应用程序中,我使用的是我自己的基于 Theme.Holo.Light 的主题 不过,我已经自定义了 actionBarStyle,将可绘制的背景设置为蓝色渐变以适合我的应用风格。

但是,对于 Halo 浅色主题,操作栏文本是深色的,并且默认图标(例如 向上导航箭头菜单图标 是深色的,这些不适合我的蓝色渐变。

从下面的 XML 中可以看出,我已经设法更正了标题文本颜色,但我找不到我需要为图标覆盖的属性。

如何更改主题以有效使用 Theme.Halo 中的 ActionBar 上的图标 而不是那些 Theme.Halo.Light 而是让我的应用程序的其余部分仍然使用 Theme.Halo.Light

这是我当前的 XML

<style name="MyLightTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="android:style/Widget.Holo.ActionBar">
    <item name="android:background">@drawable/blue_gradient_light</item>
    <item name="android:titleTextStyle">@style/Theme.ActionBar.TitleTextStyle</item>
</style>

<style name="Theme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/solid_white</item>
</style>

感谢您的帮助

【问题讨论】:

    标签: android android-4.0-ice-cream-sandwich


    【解决方案1】:

    如果您想这样做,请使用Theme.Holo.Light.DarkActionBar 作为您的基础。它会处理这些细节。

    【讨论】:

    • 谢谢,这对图标进行了排序,它似乎不会影响操作栏上的文本,例如。标题还是黑的。所以看起来我的覆盖仍然是必要的
    • 是的,它工作正常,它的基础使用深色操作栏,但是一旦我覆盖 actionBarStyle,我就可以设置我的蓝色渐变,文本就像是浅色操作栏一样
    • 另外,如果您将任何自定义视图放入操作栏(作为操作栏自定义视图、自定义选项卡视图或操作视图),请确保您使用了正确的上下文,以便它们正确设置主题.您可以通过调用 ActionBar#getThemedContext() 来获取操作栏的 Context 主题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多