使用AppCompat溢出菜单textColor(使用Hardware Menu-Key)

use*_*815 11 android android-appcompat

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

按照屏幕截图显示问题.在左侧,一切都很好,通过三个点打开溢出.在右侧菜单已通过菜单键打开:

说明问题的图片

我的主题:

<style name="AppThemeToolbar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary_color</item>
    <item name="colorPrimaryDark">@color/primary_color_dark</item>
    <item name="colorAccent">@color/accent_color</item>
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>

    <item name="windowActionModeOverlay">true</item>
    <item name="actionModeBackground">@color/action_mode_color</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>
Run Code Online (Sandbox Code Playgroud)

注意:我在多个活动中使用完全相同的主题,但在五分之三中一切都很好.这完全令人难以置信,没有意义.

所以基本上问题是:我如何解决这个问题,为什么某些活动中的textcolor会变黑,而其他活动中的texttext会变成白色(而它们都使用相同的主题)?


我尝试过的(在其他类似的帖子中找到):

  1. 设置panelBackground.很有用,不幸的是,这对我来说不是一个解决方案,因为文本颜色随意切换黑色和白色之间 - 因此根本没有我可以设置的良好背景颜色.
  2. 什么行不通:
    • android:panelTextAppearance
    • textAppearanceSmallPopupMenu
    • textAppearanceLargePopupMenu
    • popupMenuStyle
    • android:actionMenuTextColor & actionMenuTextColor
  3. 我不想使用SpannableStrings - 方法似乎很hacky

小智 0

 <style name="AppThemeLL" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:colorBackground">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这种风格对我和您将使用此主题扩展 Activity 类的活动都有效。

例子:

public class TestActivity extends Activity
{}
Run Code Online (Sandbox Code Playgroud)

您的清单也将是

<activity android:name=".TestActivity"
        android:label="Test"
        android:theme="@style/AppThemeLL"/>
Run Code Online (Sandbox Code Playgroud)