NavigationView 为一些图标设置颜色

NavigationView set colour to some of the icons

我有一个 NavigationView,我想要一些图标有颜色。

我尝试使用 mNavigationView.setItemIconTintList(null); 但这会使所有图标变黑。我创建了我希望在运行时具有颜色的项目:

SubMenu sub = menu.addSubMenu(GROUP_ID, GROUP_ID, 0, R.string.jobs);
for(int i = 0; i< jobs.size(); i++){
    MenuItem menuItem = sub.add(GROUP_ID, i, i, jobs.get(i).name);
    menuItem.setIcon(new ColorDrawable(Color.RED));
}

有没有办法保留 IconColorTint 列表,但将其从某些列表中删除?

我找到了禁用过滤器并直接在可绘制对象上设置过滤器的方法。

navigationView.setItemIconTintList(null);
for (int iconId: filterIcons) {
    MenuItem menuItem = navigationView.getMenu().findItem(iconId);
    Drawable d = menuItem.getIcon().mutate();
    d.setColorFilter(Color.rgb(117, 117, 117), PorterDuff.Mode.MULTIPLY);
    menuItem.setIcon(d);
}