2

我在我的应用程序中使用 ActionBar sherlock 库如何更改 ActionBar SUBMENU 列表项背景我应该在样式中使用什么属性?

4

2 回答 2

1

本质上,您将希望MenuItem通过在您的.android:itemBackgroundcolor/drawable selectorstyle.xml

如果您的菜单也有submenu's,那么您还需要header设置子菜单标题的样式,通常通过actionBarPopupTheme用您的custom style.

样式.xml

<resources>

    <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <item name="android:itemBackground">@drawable/menu_popup_selector</item>
        <item name="actionBarPopupTheme">@style/SubmenuHeaderStyle</item>
    </style>

    <style name="SubmenuHeaderStyle" parent="ThemeOverlay.AppCompat.Light">
        <item name="android:colorBackground">@color/colorAccent</item>
    </style>

</resources>

menu_popup_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <color
            android:color="@color/colorPrimary"/>
    </item>
    <item>
        <color
            android:color="#655611"/>
    </item>
</selector>

你会得到类似这样的截图带有子菜单的菜单屏幕截图(粉红色的标题是我的子菜单标题)。

只是为了让您知道什么时候我有没有子菜单的普通菜单看起来像这样的层次结构视图:

<menu> 
   <item/>
   <item/> 
   <item/> 
</menu> 

以及带有子菜单的菜单作为层次结构视图的示例:

<menu> 
   <item/>
   <item/>
   <group> 
     <item> 
       <menu> 
         item 
         item 
         item 
       </menu> 
     </item>
   </group>
   <item/>
   <item/> 
</menu>
于 2018-03-27T07:58:20.747 回答
0

这篇文章向您展示了如何设置 ABS 下拉项目的样式。您可以从查看 res/values/styles.xml 并更改下拉项样式开始。

<style name="Theme.MyApp" parent="Theme.Sherlock.Light">
    <!--  the text when loading -->
    <!--
    <item name="actionBarStyle">@style/Widget.MyApp.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.MyApp.ActionBar</item>
    -->

    <!-- the dropdown items -->
    <item name="android:spinnerDropDownItemStyle">@style/MyApp.Widget.Holo.DropDownItem</item>
    <item name="spinnerDropDownItemStyle">@style/MyApp.Widget.Holo.DropDownItem</item>

    <!--  the action bar dropdown menu item -->
    <!-- 
    <item name="android:spinnerItemStyle">@style/MyApp.Widget.Holo.SpinnerItem</item>
    <item name="spinnerItemStyle">@style/MyApp.Widget.Holo.SpinnerItem</item>
    -->
</style>
于 2013-08-22T19:35:24.127 回答