【问题标题】:Style not applying to Menu Items样式不适用于菜单项
【发布时间】:2026-01-23 15:40:01
【问题描述】:

我正在尝试在我的应用程序上应用一个主题。除了我用 display_menu.xml 文件扩展的菜单之外,一切都工作正常。我在这里做错了什么?

我的样式.xml

<style name="AppTheme.Dark">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:colorBackground">@color/colorBackground</item>
        <item name="android:textColorSecondary">@color/textColorPrimary</item>
        <item name="android:windowBackground">@color/colorBackground</item>
        <item name="android:textColorSecondaryInverse">@color/textColorPrimary</item>
        <item name="android:textColor">@color/textColorPrimary</item>
        <item name="cardStyle">@style/CardView.Dark</item>
        <item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
    </style>

    <style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
        <item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
        <item name="android:textAppearanceListItem">@style/MyText</item>
    </style>

    <style name="MyText">
        <item name="android:textColor">@color/colorAccent</item>
    </style>

我的 display_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >

    <item
        android:id="@+id/action_refresh"
        android:title="@string/action_refresh"
        app:showAsAction="never" />

</menu>

我在吹气

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.display_menu, menu);
    return true;
}

我的菜单项显示如下:

这是我要放在背景中的可绘制对象:

我正在尝试将菜单项的背景设置为我的 colorPrimary** 并将文本颜色设置为 textColorPrimary

【问题讨论】:

  • 因为您没有使用全息主题,所以为什么将弹出菜单的父级应用为 android:Widget.Holo.Light.ListPopupWindow,
  • 那我应该改成什么呢?
  • 看答案,希望对你有帮助。

标签: android xml colors menuitem android-styles


【解决方案1】:

这对我有帮助

将 popupMenu 样式添加到您的 AppTheme:

<style name="AppTheme" parent="android:Theme.Light">
    <item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
</style>

ma​​nifest.xml:

 <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
.............
</application>

【讨论】:

  • 经过数小时的挫折后,我切换到浮动操作按钮。无论如何,谢谢。