这很可能发生,因为可绘制对象上的色调值被 NavigationView 覆盖。
一种可能的方法是忽略来自 NavigationView 对特定图标的着色调用。您可以创建自己的 Drawable 包装类以与特定图标一起使用。
想法大纲:在 android DrawableWrapper 之上创建您自己的可绘制包装器,并返回您自己的色调颜色,无论 NavigationView 在可绘制上设置什么。
class MyDrawableWrapper extends DrawableWrapper {
@Override
public void setTint(int tint) {
setTintList(ColorStateList.valueOf(tintColor));
}
public void setTintList(@Nullable ColorStateList tint) {
// Apply your own tint here
super.setTintList(yourOwnTintList/* <-- */);
}
}