У меня есть приложение, которое использует android.support.v7.widget.Toolbar
. Каждый раздел приложения является Fragment
, доступ к которому осуществляется через support.v4.widget.DrawerLayout
Изменение цвета панели инструментов Android
Мне нужно изменить цвет Toolbar
в зависимости от того, какой раздел показан (для конкретных клиентов).
Я определил некоторые цвета в colors.xml
, так что я могу сделать что-то вроде:
changeToolbarColor(R.color.section_one);
/**/
private void changeToolbarColor(int color_res_id){
Integer colorTo = getResources().getColor(color_res_id);
toolbar.setBackgroundColor(colorTo);
}
Проблемы заключается в том, когда я делаю это, каждый вид с помощью primaryColor
(исходного основного цвета на панели инструментов) теперь показывает используя новый цвет панели инструментов.
Так что, если моя панель была зеленый и изменить его на красный, теперь все используя старый зеленый использует красный вместо этого.
Я подозреваю, что изменение фона на панели инструментов меняет само определение primaryColor
(что не имеет для меня никакого смысла). Потому что у меня нет другого представления о том, как несвязанные элементы в несвязанных действиях начинают использовать один и тот же цвет.
Это ошибка? Кто-нибудь с этой проблемой? Доступны ли какие-либо обходные пути?
Благодарим за помощь.
Я думаю (но не уверен), что вы должны создавать разные темы и воссоздавать панель инструментов в зависимости от выбора, но, вероятно, это не лучшее поведение. – basteez
Я думал об этом @tizionario, и я согласен с вами. Это не лучший подход. Похоже, что цвет панели инструментов должен быть легко изменен. Но, видимо, это не так, возможно, используя «Палитра» или любой другой подход? Но я не могу придумать, как это сделать прямо сейчас. –