Изменение цвета иконки в Toolbar

108
08 октября 2021, 08:10

Есть Activity и несколько Fragment которые открываются внутри этого активити. Toolbar находится в активити.

в Toolbar есть бургер иконка и одна иконка из OptionsMenu. В некоторых фрагментах нужно менять цвет иконок в Toolbar(цвет бургера и всех других иконок).

Например, в первом фрагменте стандартный цвет из темы, а во втором красный, а если нажимаем назад и возвращаемся на первый то сново цвет стандартный из темы..

Как это более корректно сделать?

Answer 1

Вам в каждом фрагменте нужно это делать через функцию:

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
        super.onCreateOptionsMenu(menu, inflater)
          inflater.inflate(R.menu.main_menu, menu)   
    }

и дальше вы находите нужную вам кнопку:

val item = menu.findItem(R.id.action_refresh); // например у меня так

либо делаете все через when (так на котлине, либо switch), и дальше берете вашу картинку которая присвоена данной кнопке и меняете цвет у ее drawable:

Drawable icon = getResources().getDrawable(R.drawable.ic_refresh_white_24dp);
icon.setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_IN);
item.setIcon(icon);

на java я думаю все тоже очевидно и понятно, в случае если работаете на java.

READ ALSO
java.io.StreamCorruptedException: invalid stream header: AC3F0005

java.io.StreamCorruptedException: invalid stream header: AC3F0005

я сериализую объект KeyEvent, превращаю его в строку, а затем сохраняю это значение в бд Oracle, затем читаю строку из бд и пытаюсь десериализовать...

103
Расширенный алгоритм Евклида

Расширенный алгоритм Евклида

Доброго времени суток

104
Data Jpa - операции с двумя аргументами

Data Jpa - операции с двумя аргументами

Приложение на Spring Data JpaИмеется класс Meal

98
Ping-Pong на Java

Ping-Pong на Java

Доброго времени сутокПример из книги, символ в символ, но не работает, шарик не перемещается

78