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



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

相关内容

最新更新