1

我在我的应用上使用了NavigationView和菜单。 我想要其中一个菜单项以不同的颜色(图标和文字)。我可以让导航菜单项目文本与其他项目不同吗?

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

+0

没有我的回答hped吗?如果是,那么请接受我的回答 –

回答

-1

通过DevTest的回答启发,我终于用SpannableString用于设置与特定颜色的文字。 我已经创造了它一个实用程序方法:

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

它很高兴upvote答案,如果它真的帮助你:-) –

+0

我认为SpannableString选项更好...谢谢 – Shlomi

+0

肯定是。但如果我的回答无论如何帮助你,upvoting它也帮助我:-) –

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>")); 
+0

嗯,这确实有诀窍。太好了! 但它感觉像一个黑客。我在等着看看是否有更加标准的方法来做到这一点。 – Shlomi

+0

导航视图中没有其他标准方式,我知道。您可以更改完整菜单项目的颜色,但AFAIK,而不是单个项目。 –

相关问题