如何在android中更改menuItem的背景颜色?

时间:2016-04-15 09:02:36

标签: android android-actionbar menuitem

我正在以编程方式将菜单项添加到菜单中。我想在选择中添加背景颜色到特定项目。如何向menuItem添加背景?

enter image description here

您的回答将不胜感激。

2 个答案:

答案 0 :(得分:2)

虽然其他答案提供了更改样式(这将影响所有菜单项,并且据我所知,需要更改一个菜单项),我建议您使用{{ 1}}属性实现菜单项的自定义布局。

请参阅documentation(搜索actionLayout,实际上非常简单)。

此外,我认为有可能将selector作为您的布局并使用它。


更新。抱歉,我误导你:(

只有当MenuItem显示为Action(而不是按下三个点时)时,所有这些都将起作用。

看起来像给出其他答案的人是对的 - 定制这个的唯一方法是改变主题。

但请检查thisthis - 它可能会帮助您为您的目的提供选择器 您也可以创建PopupMenu甚至PopupWindow,最后一个可以完全自定义 最后一个选项是创建自定义Spinner,选中this

希望这件事可以帮到你。感谢。

答案 1 :(得分:1)

首先,你需要为popmenu创建一个Style,如下所示,参考

<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
    <item name="android:textStyle">@style/commonEditTextTheme</item>
    <item name="android:popupBackground">@drawable/pop_up_menu_bg_with_shadow</item>
</style>

可绘制的地方您也可以根据需要替换颜色或将XML Drawable放入可绘制文件夹

<style name="commonEditTextTheme" parent="@android:style/TextAppearance.Medium">
    <item name="android:fontFamily">sans-serif-light</item>
</style>

此弹出式菜单主题会添加到您的主要应用程序或活动主题中,如下所示

<!--My Theme-->
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    ......
    <item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
</style>