弹出菜单子菜单标题颜色
问题描述:
我在我的应用程序中使用PopUp Menu
。一个在我的弹出式菜单中的项目有三个子菜单,就像弹出菜单子菜单标题颜色
- SetAs
- 铃声
- 通知
- 报警
- 项目2
- 项目3
。
点击“SetAs”项目后,我只看到三个子项目,没有别的。我使用的是旧版本的支持库,如v22
或v23
,我不确定。但是当我在我的项目中将Android支持库更新为v7:25.4.0
时,我在子菜单视图中看到了一个标题(SetAs)。
这是我的弹出式菜单的截图:
现在我的问题是如何能更改这个标题的颜色?
答
我已经与下面的代码编程方式做到了这一点:
将这个你叫popup.show()
之前。
// Change PopupMenu subMenu title color
PopupMenu popup = new PopupMenu(activity, view);
Menu itemSetAs = popup.getMenu();
SubMenu s = itemSetAs.findItem(R.id.SetAs).getSubMenu();
SpannableString headerTitle = new SpannableString(itemSetAs.findItem(R.id.SetAs).getTitle());
// Change the color:
headerTitle.setSpan(new ForegroundColorSpan(Color.YOUR_COLOR), 0, headerTitle.length(), 0);
// You can even change the size:
int textSize = getResources().getDimensionPixelSize(R.dimen.your_size);
headerTitle.setSpan(new AbsoluteSizeSpan(textSize), 0, headerTitle.length(), SPAN_INCLUSIVE_INCLUSIVE);
s.setHeaderTitle(headerTitle);
popup.show().