我可以使导航菜单项文本与其他项目不同吗?

Can I make navigation menu item text to be different than other items?

我在我的应用程序上使用 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>")); 

受到 DevTest 的启发,我最终使用 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)));