受DevTest答案的启发,我最终使用了
我在应用程序上使用NavigationView
和菜单。我希望其中一个菜单项是不同的颜色(图标和文本)。
我可以使用setItemIconTintList(null)
和所需颜色的图标使图标显示其他颜色。有没有一种方法可以使单个菜单项的文本颜色不同?
您可以这样使用:
//Change to your NavigationView Id
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
//change R.id.menu_item to your id
navigationView.getMenu().findItem(R.id.menu_item).setTitle(Html.fromHtml("<font color='#ff3824'>Settings</font>"));
SpannableString
来设置具有特定颜色的文本。我为它创建了一个util方法:
public static CharSequence getSpannableColorString (String text, int color) {
SpannableString spanString = new SpannableString(text);
spanString.setSpan(new ForegroundColorSpan(color),0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return spanString;
}
然后用它来设置我的MenuItem
的标题:
MenuItem menuItem = navigationView.getMenu().findItem(R.id.myItem);
menuItem.setTitle(getSpannableColorString(getString(R.string.itemText), getColor(R.color.itemColor)));