更改弹出子菜单dropDown标题颜色

时间:2017-04-16 14:40:22

标签: android popupmenu

我正在使用默认的poupMenu,我已将我的弹出菜单自定义为黑暗主题,现在我想知道如何在主题中更改弹出子菜单标题颜色?

这是我的风格:

    <style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu">
    <!-- <item name="android:dropDownHorizontalOffset">-4dp</item>
    <item name="android:dropDownVerticalOffset">4dp</item>-->
    <item name="android:popupBackground">@color/material_grey_900</item>
</style>
<style name="popup_TextStyle" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
    <item name="android:textColor">@drawable/color_item_popup</item>
    <item name="android:textSize">@dimen/popup_text_size</item>
</style>

我在我的主题中使用它:

<item name="popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:itemTextAppearance">@style/popup_TextStyle</item>

这是我弹出菜单的视图:

image description

现在我需要更改标题颜色(#FF4081)。

1 个答案:

答案 0 :(得分:0)

我已经使用下面的代码以编程方式完成了它,如果有兴趣的话:

// Change PopupMenu subMenu title color
PopupMenu popup = new PopupMenu(activity, view);
Menu itemSetAs = popup.getMenu();
SubMenu s = itemSetAs.findItem(R.id.setAsRingtone).getSubMenu();
SpannableString headerTitle = new SpannableString(itemSetAs.findItem(R.id.setAsRingtone).getTitle());
headerTitle.setSpan(new ForegroundColorSpan(Color.YOUR_COLOR), 0, headerTitle.length(), 0);
s.setHeaderTitle(headerTitle);

我自己测试过。