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

时间:2016-04-16 16:12:15

标签: android android-layout android-menu android-navigationview

我在我的应用上使用ERROR IN APPLICATION: input is not valid Modified UTF-8:和菜单。 我希望其中一个菜单项有不同的颜色(图标和文字)。

我可以使用NavigationView并使用所需颜色的图标使图标显示其他颜色。 有没有办法让单个菜单项文本颜色不同?

2 个答案:

答案 0 :(得分:0)

您可以这样使用:

//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>")); 

答案 1 :(得分:-1)

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)));