Android 带AppCompat的溢出菜单文本颜色(使用硬件菜单键)

Android 带AppCompat的溢出菜单文本颜色(使用硬件菜单键),android,android-appcompat,Android,Android Appcompat,我面临着一个问题,那就是带有独立菜单键的设备(比如三星onces)。 在某些活动中,当通过菜单键打开时,溢出菜单项的文本颜色为白色。通过三个点打开溢出,文本颜色始终是黑色的-就像它应该的那样 在屏幕截图之后显示问题。在左侧,一切正常,溢出已通过三个点打开。在右侧,菜单已通过菜单键打开: 我的主题: @颜色/原色 @颜色/原色\u颜色\u深 @颜色/强调色 @android:彩色/白色 @android:彩色/白色 真的 @颜色/动作\u模式\u颜色 @style/ThemeOverlay.A

我面临着一个问题,那就是带有独立菜单键的设备(比如三星onces)。 在某些活动中,当通过菜单键打开时,溢出菜单项的文本颜色为白色。通过三个点打开溢出,文本颜色始终是黑色的-就像它应该的那样

在屏幕截图之后显示问题。在左侧,一切正常,溢出已通过三个点打开。在右侧,菜单已通过菜单键打开:

我的主题:

@颜色/原色
@颜色/原色\u颜色\u深
@颜色/强调色
@android:彩色/白色
@android:彩色/白色
真的
@颜色/动作\u模式\u颜色
@style/ThemeOverlay.AppCompat.Light
注意:我在多个活动中使用了完全相同的主题,尽管五分之三的活动都很好。 这完全令人难以置信,毫无意义

所以基本上问题是:我如何解决这个问题?为什么有些活动中的文本颜色是黑色,而另一些活动中的文本颜色是白色(而它们都使用相同的主题)


我的尝试(在其他类似帖子中发现):

  • 设置
    面板背景
    ,不幸的是,这对我来说不是一个解决方案,因为textcolor可以在黑白之间随意切换,所以我根本无法设置好背景色
  • 什么不起作用:
    • android:panelTextAppearance
    • text外观小弹出菜单
    • textAppearanceLargePopupMenu
    • popupMenuStyle
    • android:actionMenuTextColor
      &
      actionMenuTextColor
  • 我不想用看起来很黑的
  • 您的舱单也将

    <activity android:name=".TestActivity"
            android:label="Test"
            android:theme="@style/AppThemeLL"/>
    

    终于找到了解决方案

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionBarPopupTheme">@style/HardwareOptionMenu</item>
    </style>
    
    <style name="HardwareOptionMenu" parent="ThemeOverlay.AppCompat.Dark">
        <item name="android:textColorSecondary">@color/white</item>
        <item name="android:colorBackground">@color/black</item>
    </style>
    
    
    @样式/硬件选项菜单
    @颜色/白色
    @颜色/黑色
    
    我也面临类似的问题。您可以为AppCompat尝试以下操作:-

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionBarPopupTheme">@style/HardwareOptionMenu</item>
    </style>
    
    <style name="HardwareOptionMenu" parent="ThemeOverlay.AppCompat.Dark">
        <item name="android:textColorSecondary">@color/black</item>
        <item name="android:colorBackground">@color/white</item>
    </style>
    
    
    @样式/硬件选项菜单
    @颜色/黑色
    @颜色/白色
    
    android:textColorSecondary似乎正在将文本更改为白色。@GPack即使我更改了
    textColorSecondary
    文本颜色,但不幸的是,文本颜色仍然是白色。由于所有主题都是浅色的,即黑色文本,问题是:白色文本从何而来?也许您正在为某些活动的menu.xml级别的项目设置样式?@GPack这就是白色的来源。我不知道如何通过menu.xml或java代码设置菜单项的样式,所以可以肯定地说,我没有这样做工具栏xml中没有其他样式或主题引用?
    <activity android:name=".TestActivity"
            android:label="Test"
            android:theme="@style/AppThemeLL"/>
    
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionBarPopupTheme">@style/HardwareOptionMenu</item>
    </style>
    
    <style name="HardwareOptionMenu" parent="ThemeOverlay.AppCompat.Dark">
        <item name="android:textColorSecondary">@color/white</item>
        <item name="android:colorBackground">@color/black</item>
    </style>
    
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionBarPopupTheme">@style/HardwareOptionMenu</item>
    </style>
    
    <style name="HardwareOptionMenu" parent="ThemeOverlay.AppCompat.Dark">
        <item name="android:textColorSecondary">@color/black</item>
        <item name="android:colorBackground">@color/white</item>
    </style>