ActionBar溢出图标拒绝更改

时间:2013-11-13 10:14:55

标签: android android-layout android-actionbar android-styles

我一直在尝试将动作栏中的溢出图标(三个点)更改为白色而不是灰色。我已经按照每个人的建议,但它保持不变。这是我的代码:

<style name="ActionBar.AccentColor.Background" parent="@android:style/Widget.Holo.ActionBar.Solid">
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
    <item name="android:background">@color/accent_dark</item>
    <item name="android:backgroundSplit">@color/accent_dark</item>
    <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
</style>

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_back_white</item>
    <item name="android:background">?android:attr/actionBarItemBackground</item>
    <item name="android:contentDescription">"Lala"</item>
</style>

<style name="Theme" parent="@android:style/Theme.Holo.Light">
     <item name="android:actionBarStyle">@style/ActionBar.AccentColor.Background</item>
</style>

我甚至创建了一个新的应用程序,它可以100%运行。一个想法是,我所包含的apklib项目可能导致了问题,因此我将所有内容移出apklib并再次进行测试。不知道发生了什么!

1 个答案:

答案 0 :(得分:10)

您错放了android:actionOverflowButtonStyle项。它必须在主题中定义,而不是在android:actionBarStyle内。

将样式更改为以下内容,它应该有效:

<style name="ActionBar.AccentColor.Background" parent="@android:style/Widget.Holo.ActionBar.Solid">
    <item name="android:background">@color/accent_dark</item>
    <item name="android:backgroundSplit">@color/accent_dark</item>
    <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
</style>

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_back_white</item>
    <item name="android:background">?android:attr/actionBarItemBackground</item>
    <item name="android:contentDescription">"Lala"</item>
</style>

<style name="Theme" parent="@android:style/Theme.Holo.Light">
     <item name="android:actionBarStyle">@style/ActionBar.AccentColor.Background</item>
     <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>