У меня есть активность с некоторыми пунктами меню, для которого я изменить значок цвета, как это:Drawable ColorFilter держал через активность Transitions для того же ресурса
private void colorMenuItem(MenuItem item) {
if (item != null) {
Drawable icon = item.getIcon();
if (icon != null) {
icon.setColorFilter(getResources().getColor(R.color.some_color), PorterDuff.Mode.SRC_ATOP);
}
}
}
Иконки белые Drawable PNG файлы с иконкой материала задавать. Это работает так, как ожидалось, и элементы меню окрашены по желанию.
Однако, когда я запускаю другое действие, которое использует один и тот же ресурс, который уже был окрашен, но в другом представлении (например, FAB вместо меню) ColorFilter для этого вида остается. Почему это?
Не должен ли FAB загружать файл ресурсов снова и не должен быть белым (или неизменным)?
Я думал, что так будет, но мутация, похоже, не исправляет это. Я даже попытался установить его в пункт меню снова после его мутации, но все равно не повезло. – peshkira
@peshkira опубликуйте свой текущий подход –
1) Я раздуваю меню. 2) Я получаю пункт меню. 3) Я покрасьте пункт меню, как указано выше +, ваше предложение о мутации. 4) Элемент меню покрашен как ожидалось. 5) Я перехожу к другому действию, которое имеет фабрику с тем же ресурсом, что и значок src. 6) значок src фабрики также окрашен вместо обычного цвета. Я попытаюсь опубликовать скриншоты позже – peshkira