设置溢出菜单文本颜色。

5
在我的主题中,我包括了以下内容:

<item name="android:popupMenuStyle">@style/ListPopupWindow</item>

styles.xml中:

<style name="ListPopupWindow" parent="@android:style/Widget.Holo.ListPopupWindow">
    <item name="android:textColor">@color/bright_foreground_holo_dark</item>    
</style>

其中bright_foreground_holo_dark是浅灰色(#fff3f3f3)。然而文本显示为黑色。背景是深灰色,正如在暗色主题中应该的那样。

这些定义在Android的styles.xml源代码中。

<style name="Widget.Holo.ListPopupWindow" parent="Widget.ListPopupWindow">
    <item name="android:dropDownSelector">@android:drawable/list_selector_holo_dark</item>
    <item name="android:popupBackground">@android:drawable/menu_dropdown_panel_holo_dark</item>
    <item name="android:dropDownVerticalOffset">0dip</item>
    <item name="android:dropDownHorizontalOffset">0dip</item>
    <item name="android:dropDownWidth">wrap_content</item>
</style>

<style name="Widget.ListPopupWindow">
    <item name="android:dropDownSelector">@android:drawable/list_selector_background</item>
    <item name="android:popupBackground">@android:drawable/spinner_dropdown_background</item>
    <item name="android:dropDownVerticalOffset">-10dip</item>
    <item name="android:dropDownHorizontalOffset">0dip</item>
    <item name="android:dropDownWidth">wrap_content</item>        
</style>

<style name="Widget">
    <item name="android:textAppearance">?textAppearance</item>
</style>

<style name="TextAppearance">
    <item name="android:textColor">?textColorPrimary</item>
    <item name="android:textColorHighlight">?textColorHighlight</item>
    <item name="android:textColorHint">?textColorHint</item>
    <item name="android:textColorLink">?textColorLink</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">normal</item>
</style>

有相同的问题并尝试了许多不同的方法。它几乎看起来没有适合那个/Android忽略任何可用的候选项的钩子。 - Chris
卡在同一个问题上了。你解决了吗? - Zen
1个回答

14

如果有人需要帮助,

想要改变溢出菜单项的字体颜色,你的主题应该包括:

<item name="android:textAppearanceLargePopupMenu">@style/PopupMenuTextAppearance</item>

并且在style.xml

<style name="PopupMenuTextAppearance" parent="android:TextAppearance.Large">
    <item name="android:textColor">@color/bright_foreground_holo_dark</item>
</style>

根据需要选择任何一个父级TextAppearance.Medium / TextAppearance.Small


1
真希望我早点看到这个 - 经过很多尝试和错误,我得出了同样的结论。有很多重复的问题和hacky答案,但这应该是被接受的解决方案。 - MandisaW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接