修改ActionBar中Android项目的样式

时间:2011-11-30 09:18:28

标签: android android-layout android-3.0-honeycomb android-actionbar android-menu

如何修改Android应用程序操作栏上项目的样式?

我尝试了以下内容:

<item name="android:actionBarStyle">@style/ActionBar.Light</item>

<style name="ActionBar.Light" parent="@style/ActionBar">
        <item name="android:background">@color/black</item>
        <item name="android:actionMenuTextColor">#FF00FF</item>
</style>

我可以修改操作栏的背景,但不能修改操作栏中项目的文本颜色。我该怎么办?

编辑:

我几乎尝试了我找到的所有android:action属性,但除了背景之外我无法改变任何其他属性。只有以下代码的第一个<item name="android:background">#FF0000</item>对我的代码进行了更改。无论我在测试风格上使用哪种值,它都不会改变任何东西。为什么会这样?

<item name="android:actionBarStyle">@style/ActionBar.Light</item>

<style name="ActionBar.Light" parent="@style/ActionBar">
        <item name="android:background">#FF0000</item>
        <item name="android:actionMenuTextColor">@style/Test</item>
        <item name="android:actionButtonStyle">@style/Test</item>
        <item name="android:actionModeBackground">@style/Test</item>
        <item name="android:actionMenuTextAppearance">@style/Test</item>
    </style>

    <style name="Test">
        <item name="android:textColor">@color/white</item>
        <item name="android:background">#FF0000</item>
    </style>

2 个答案:

答案 0 :(得分:15)

如果要更改操作栏中菜单项的颜色,则必须在主题样式中设置actionMenuTextColor。

<style name="PortfolioTheme" parent="android:style/Theme.Holo.Light">
   <item name="android:actionMenuTextColor">#24598a</item>
   <item name="actionMenuTextColor">#24598a</item>
</style>

您没有在actionMenuTextAppearance中定义菜单项颜色!

答案 1 :(得分:0)

您可以通过以下方式更改颜色: -

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>

<style name="MyTheme.ActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

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