Android溢出按钮自定义图标不适用于API< 5

时间:2015-04-08 12:40:59

标签: android android-actionbar android-theme appcompat-v7-r21

我在compat主题中设置自定义溢出图标,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="AppTheme.Base"/>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/action_bar</item>
    <item name="colorPrimaryDark">@color/status_bar</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:textColorPrimary">@color/theme_red</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@color/theme_red</item>
</style>

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

</resources>

我在Nexus 5 API 5.1上得到以下(所需且正确的)结果: enter image description here

然而,当我在API 4.4.4或4.2.2(在Nexus 4,Xperia Z等上测试)上测试相同的应用程序时,在这两种情况下,我都没有获得自定义溢出图标。这是截图: enter image description here

我正在使用appcompat库v7:21中的工具栏,但我不认为问题是由工具栏引起的。我在这里做错了什么?

作为后续问题,我很乐意在保持相同形状的同时更改溢出图标的颜色。可能吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:1)

根据之前的评论:您似乎忘了在主题中添加非{4}的非Android前缀版本。添加以下内容:

actionOverflowButtonStyle

答案 1 :(得分:1)

首先您需要删除以下行

application.commandbars("cell").enabled = true

然后添加以下代码

<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>

它会起作用