如何更改 android 中 menuItem 的背景颜色?
How to change Background color of menuItem in android?
我正在以编程方式将菜单项添加到菜单中。我想在选择特定项目时添加背景颜色。如何为 menuItem 添加背景?
您的回答将不胜感激。
首先,您需要根据需要为 popmenu 创建样式,请参考下面的示例
<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可绘制到你的可绘制文件夹
<style name="commonEditTextTheme" parent="@android:style/TextAppearance.Medium">
<item name="android:fontFamily">sans-serif-light</item>
</style>
此弹出菜单主题添加到您的主应用程序或 activity 如下所示的主题
<!--My Theme-->
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
......
<item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
</style>
虽然其他答案提供了更改样式(这将影响 所有 菜单项,据我了解,需要更改一个菜单项),
我建议您使用 android:actionLayout
属性来实现菜单项的自定义布局。
参见documentation(在那里搜索actionLayout,其实很简单)。
此外,我认为有可能制作一个 selector
作为您的布局并使用它。
更新。对不起,我误导你了:(
所有这一切只有在 MenuItem 显示为 Action 时才有效(不是在按下三个点时)。
似乎给出其他答案的人是正确的 - 自定义它的唯一方法是更改主题。
但请检查 this and this - 它可能会帮助您提供适合您目的的选择器。
您也可以创建 PopupMenu or even PopupWindow,最后一个是完全可定制的。
最后一个选项是创建自定义 Spinner,勾选 this.
希望本文对您有所帮助。谢谢。
我正在以编程方式将菜单项添加到菜单中。我想在选择特定项目时添加背景颜色。如何为 menuItem 添加背景?
您的回答将不胜感激。
首先,您需要根据需要为 popmenu 创建样式,请参考下面的示例
<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可绘制到你的可绘制文件夹
<style name="commonEditTextTheme" parent="@android:style/TextAppearance.Medium">
<item name="android:fontFamily">sans-serif-light</item>
</style>
此弹出菜单主题添加到您的主应用程序或 activity 如下所示的主题
<!--My Theme-->
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
......
<item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
</style>
虽然其他答案提供了更改样式(这将影响 所有 菜单项,据我了解,需要更改一个菜单项),
我建议您使用 android:actionLayout
属性来实现菜单项的自定义布局。
参见documentation(在那里搜索actionLayout,其实很简单)。
此外,我认为有可能制作一个 selector
作为您的布局并使用它。
更新。对不起,我误导你了:(
所有这一切只有在 MenuItem 显示为 Action 时才有效(不是在按下三个点时)。
似乎给出其他答案的人是正确的 - 自定义它的唯一方法是更改主题。
但请检查 this and this - 它可能会帮助您提供适合您目的的选择器。
您也可以创建 PopupMenu or even PopupWindow,最后一个是完全可定制的。
最后一个选项是创建自定义 Spinner,勾选 this.
希望本文对您有所帮助。谢谢。