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

标签 android drop-down-menu android-actionbar background-color android-menu

我正在开发一款 Android 应用程序,但在设计操作栏时遇到了一些问题。我正在使用上面带有白色图标的深色操作栏。单击溢出图标时会弹出一个下拉菜单。一切都很好,但我需要带有红色文本的下拉菜单的浅色背景。我曾尝试在 styles.xml 中编辑主题,但我只能在使用浅色主题时更改下拉菜单的背景颜色。

当我将 Theme.Base.AppCompat.Light.DarkActionBar 更改为 Theme.Base.AppCompat.Light 时,我可以获得浅色下拉菜单,但其他图标如'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>

最佳答案

您可以像这样更改 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" />

关于android - 如何更改操作栏中下拉菜单的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899108/

相关文章:

android - 如何在 Actionbar 标题下方添加 Textview

Android Studio 4.2 不在 Gradle 栏中显示签名报告

css - 移动下拉导航重叠内容

android sherlockActionBar 样式 Action 文本

javascript - 使用 JQuery 读取 JSON : Field Names

JQuery隐藏下拉菜单

Android 刷新操作栏和 fragment 更改标题

java - 压缩 Android AudioRecord.read(byte[], int, int) 返回的原始数据

android - hdpi ldpi mdpi 图标/菜单分辨率

android - 在自定义通知中显示 HTML 内容