更改 Android PopupMenu 文本颜色不起作用

2024-01-07

另一个 android 主题风格问题...因为我搜索了该网站并且无法在这里找到答案,这就是我的问题。

我试图更改操作栏溢出显示的 PopupMenu 的文本颜色,但它没有改变。它可以很好地改变背景,但不能改变文本颜色。顺便说一句,这是由“Android Action Bar Style Generator”生成的代码,我刚刚添加了文本外观标签。

这是我的代码:

<style name="Theme.Styles_mr_action_bar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarItemBackground">@drawable/selectable_background_styles_mr_action_bar</item>
    <item name="popupMenuStyle">@style/PopupMenu.Styles_mr_action_bar</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.Styles_mr_action_bar</item>
    <item name="textAppearanceLargePopupMenu">@style/PopupMenu.TextAppearanceLarge</item>
    <item name="textAppearanceSmallPopupMenu">@style/PopupMenu.TextAppearanceSmall</item>
</style>


<style name="PopupMenu.Styles_mr_action_bar" parent="@style/Widget.AppCompat.Light.PopupMenu">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_styles_mr_action_bar</item>
</style>

<style name="PopupMenu.TextAppearanceSmall" parent="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small">
    <item name="android:textColor">#000000</item>
</style>

<style name="PopupMenu.TextAppearanceLarge" parent="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large">
    <item name="android:textColor">#000000</item>
</style>

知道发生了什么吗?我正在 android 4.4.4 中测试它


好吧,伙计们,我花了将近一周的时间试图改变这一点,但没有办法做到......那么我做了什么?刚刚创建了一个弹出窗口并将其附加到一个看起来像溢出菜单的操作项。

PopupMenu mPopupMenu = new PopupMenu(this, findViewById(R.id.fake_overflow_item));
mPopupMenu.getMenuInflater().inflate(R.menu.custom_popup_menu, mPopupMenu.getMenu());
mPopupMenu.setOnMenuItemClickListener(this);
mPopupMenu.show();

关于 PopupMenu 的锚视图,真正重要的是您必须使用 findViewById() 直接从 Activity 获取它。如果您从 MenuItemCompat.getActionView() 获取它,PopupMenu 将引发异常。我之所以明确这一点,是因为我在这方面遇到了问题,并且没有任何地方说明您必须从那里获取它。

我希望这可以帮助别人!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 Android PopupMenu 文本颜色不起作用 的相关文章

随机推荐