溢出菜单行自定义
Overflow menu row customization
我想自定义操作栏中溢出菜单的行。我发现了一个很棒的博客 post 解释了如何去做这件事,这看起来很简单。 link 在下面。
http://scriptedpapers.com/2014/08/12/android-action-bar-overflow-menu-customization/
我特别想更改溢出菜单行的背景颜色,以便我使用的主题如下所示:
<resources>
<!--the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/CustomActionBar</item>
<item name="android:homeAsUpIndicator">@drawable/upcaret</item>
<item name="android:actionOverflowButtonStyle">@style/CustomOverflowButton</item>
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
<!--ActionBar style -->
<style name="CustomActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/customBlue</item>
</style>
<style name="CustomOverflowButton" parent="@android:style/Widget.Holo.Light.ActionButton.Overflow">
<item name="android:src">@drawable/overflowbutton</item>
</style>
<style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@color/customBlue</item>
</style>
将此主题应用到应用程序后,尽管设置了自定义 popupMenuStyle,溢出菜单的背景颜色仍然与 Holo.Light.DarkActionBar 的默认颜色相同。
对于我的项目,minSdkVersion 是 15,targetSdkVersion 是 19。
有没有人有什么想法?
谢谢。
尝试指定 9 色块可绘制对象而不是颜色。
转到 here 并通过从 "Popup color" 下拉列表中选择一种颜色来选择您希望行显示的颜色。
您唯一需要的 zip 文件是 menu_dropdown_panel.9.png
。
确保将此文件放入您的各种 drawable-xxxx
文件夹中。
然后像这样使用它:
<style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
</style>
如果还是不行,在上面加上:
将此行添加到您的主主题 (CustomActionBarTheme):
<item name="android:actionBarWidgetTheme">@style/PopupWrapper</item>
然后添加:
<style name="PopupWrapper" parent="@android:style/Theme.Holo">
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
我想自定义操作栏中溢出菜单的行。我发现了一个很棒的博客 post 解释了如何去做这件事,这看起来很简单。 link 在下面。 http://scriptedpapers.com/2014/08/12/android-action-bar-overflow-menu-customization/
我特别想更改溢出菜单行的背景颜色,以便我使用的主题如下所示:
<resources>
<!--the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/CustomActionBar</item>
<item name="android:homeAsUpIndicator">@drawable/upcaret</item>
<item name="android:actionOverflowButtonStyle">@style/CustomOverflowButton</item>
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
<!--ActionBar style -->
<style name="CustomActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/customBlue</item>
</style>
<style name="CustomOverflowButton" parent="@android:style/Widget.Holo.Light.ActionButton.Overflow">
<item name="android:src">@drawable/overflowbutton</item>
</style>
<style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@color/customBlue</item>
</style>
将此主题应用到应用程序后,尽管设置了自定义 popupMenuStyle,溢出菜单的背景颜色仍然与 Holo.Light.DarkActionBar 的默认颜色相同。
对于我的项目,minSdkVersion 是 15,targetSdkVersion 是 19。
有没有人有什么想法?
谢谢。
尝试指定 9 色块可绘制对象而不是颜色。
转到 here 并通过从 "Popup color" 下拉列表中选择一种颜色来选择您希望行显示的颜色。
您唯一需要的 zip 文件是 menu_dropdown_panel.9.png
。
确保将此文件放入您的各种 drawable-xxxx
文件夹中。
然后像这样使用它:
<style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
</style>
如果还是不行,在上面加上:
将此行添加到您的主主题 (CustomActionBarTheme):
<item name="android:actionBarWidgetTheme">@style/PopupWrapper</item>
然后添加:
<style name="PopupWrapper" parent="@android:style/Theme.Holo">
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>