Android 导航视图中每个项目的不同文本颜色?

Android 导航视图中每个项目的不同文本颜色?,android,android-studio,android-navigationview,Android,Android Studio,Android Navigationview,我正在android studio中使用导航视图在我的应用程序中创建导航抽屉。在导航抽屉中,我希望有一个项目是绿色的,一个是红色的,其他的是黑色的(就像下面截图中的一样)。然而,我似乎找不到解决这个问题的办法。我知道我可以在XML中使用“itemTextColor”更改所有项目的颜色,但这不是我想要做的 因此,改变特定项目的颜色似乎不那么容易,要么全是,要么全是(通过com.google.android.material.navigation.NavigationView上的app:itemIc

我正在android studio中使用导航视图在我的应用程序中创建导航抽屉。在导航抽屉中,我希望有一个项目是绿色的,一个是红色的,其他的是黑色的(就像下面截图中的一样)。然而,我似乎找不到解决这个问题的办法。我知道我可以在XML中使用“itemTextColor”更改所有项目的颜色,但这不是我想要做的


因此,改变特定项目的颜色似乎不那么容易,要么全是,要么全是(通过
com.google.android.material.navigation.NavigationView
上的
app:itemIconTint
app:itemTextColor
),但你似乎可以这样做(如果您使用Kotlin或Java,我是用Java实现的,您从未提到过这一点):


您是否在menu.xml中尝试过需要添加的任何项目
android:textColor:“[your_COLOR_HERE]”
@DavidKroukamp menu.xml项标记中没有
android:textColor
属性检查我的答案,在
NavigationView
中用xml为单个菜单项执行此操作并不容易,您必须在代码中执行此操作。非常感谢!我确实使用此工具更改了文本颜色。但是,它仍然不会更改图标的颜色.你能告诉我怎么做吗?看起来不太可能,伙计,从技术上来说,他们应该共享相同的颜色,这就是NavigationView的构建方式,这个“黑客”因为文本在presenter中的呈现方式不同,所以可以更改文本颜色,但无论您以编程方式设置什么,它看起来都会覆盖应用的所有色调(除了在XML中,但这会更改所有项,而不仅仅是1或2项)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // .. other code

    NavigationView navigationView = findViewById(R.id.nav_view);

    // .. other code

    int menuItemPosition = 0; // the position of the menu item in NavigationView you want to change the color of
    MenuItem menuItem = navigationView.getMenu().getItem(menuItemPosition);
    this.changeMenuItemColor(menuItem, Color.RED);
}


private void changeMenuItemColor(MenuItem menuItem, @ColorInt int color) {
    SpannableString coloredMenuItemTitle = new SpannableString(menuItem.getTitle());
    coloredMenuItemTitle.setSpan(new ForegroundColorSpan(Color.RED), 0, coloredMenuItemTitle.length(), 0);
    menuItem.setTitle(coloredMenuItemTitle);
}