我得到了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列表但是从某些列表中删除它?
答案 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);
}