NavigationView将颜色设置为某些图标

时间:2017-09-19 17:50:17

标签: android layout navigationview bottomnavigationview

我得到了NavigationView,我希望其中一些图标有颜色。

enter image description here

我尝试使用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列表但是从某些列表中删除它?

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,通过禁用过滤器并直接在drawable上设置过滤器。

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