首页 文章

如何更改操作栏中下拉菜单的背景颜色

提问于
浏览
1

我在设计动作栏时面临一些问题 . 我正在使用带有白色图标的黑色动作栏 . 单击溢出图标时弹出下拉菜单 . 一切都很好,但我需要浅红色背景的下拉菜单背景 . 我已尝试在 styles.xml 中编辑主题但我只能在使用浅色主题时更改下拉菜单的背景颜色 .

当我将 Theme.Base.AppCompat.Light.DarkActionBar 更改为 Theme.Base.AppCompat.Light 时,我可以获得浅色下拉菜单,但其他图标如 'Search' 变得非常轻且几乎看不见(见第2张图片) . 如何将下拉菜单中的文本颜色从黑色更改为红色,并使 'Search' 图标可见 .

enter image description here

enter image description here

以下是更深入了解的代码

styles.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.Base.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:popupMenuStyle">@style/MyPopUpMenu</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/gloryred</item>
</style>

<style name="MyPopUpMenu"
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:popupMenuStyle">@color/white</item>
</style>

menu_actions.xml

<?xml version="1.0" encoding="utf-8"?>
<item android:id="@+id/action_search"
    android:title="@string/action_search"
    android:icon="@drawable/ic_action_search"
    com.example.unitedstates.app:showAsAction="ifRoom"
    com.example.unitedstates.app:actionViewClass="android.widget.SearchView"/>

<item android:id="@+id/action_overflow"
    android:title="@string/action_overflow"
    android:icon="@drawable/ic_action_overflow"
    com.example.unitedstates.app:showAsAction="ifRoom">
    <menu>
        <item
            android:id="@+id/action_help"
            android:title="@string/action_help"
            android:icon="@drawable/ic_action_help"
            android:showAsAction="never"/>
        <item
            android:id="@+id/action_about"
            android:title="@string/action_about"
            android:icon="@drawable/ic_action_about"
            android:showAsAction="never"/>
        <item
            android:id="@+id/action_feedback"
            android:title="@string/action_feedback"
            android:icon="@drawable/ic_action_feedback"
            android:showAsAction="never"/>
    </menu>
</item>

2 回答

  • 0

    您可以像这样更改 actionbardropdown menu 的背景颜色和文本颜色 .

    在styles.xml中设置弹出菜单的样式 .

    <style name="PopupMenuStyle" parent="Theme.AppCompat.Light">
    
             <item name="android:background">@color/YourColor</item>
             <item name="android:textColor">@Color/YourColor</item>
    
    </style>
    

    现在将此样式设置为 toolbarpopupTheme .

    <android.support.v7.widget.Toolbar  
          xmlns:app="http://schemas.android.com/apk/res-auto"          
          xmlns:android="http://schemas.android.com/apk/res/android"
    
              // rest of your code
          app:popupTheme="@style/PopupMenuStyle" />
    
  • 3

    如果你想使用黑色背景你可以轻松地去 res > drawable-hdpi > menu_dropdown_panel_example.9.png 这是九个补丁图像,然后黑色线条将其颜色替换为黑色或荣耀红色如果你想

    同样你必须在 res>drawable-mdpi>menu_dropdown_panel_example.9.png res>drawable-xhdpi>menu_dropdown_panel_example.9.png res>drawable-xxhdpi>menu_dropdown_panel_example.9.png

相关问题