Подтвердить что ты не робот

Изменение цвета панели действий программно более одного раза

Я использую

getSherlockActivity().getSupportActionBar().setBackgroundDrawable(new ColorDrawable(0xff00ACED));

Изменить цвет моей панели действий в фрагменте, и он работает. Но если я открою этот фрагмент, тогда откройте другой фрагмент, который вызывает этот метод с другим цветом, панель действий не изменится на нужный цвет. Вместо этого он превращается в белый цвет вместо цвета, на который я его устанавливал.

4b9b3361

Ответ 1

это быстрое исправление, которое я нашел

mActionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
mActionBar.setDisplayShowTitleEnabled(false);
mActionBar.setDisplayShowTitleEnabled(true);

Ответ 2

Попробуйте это,

Method1:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(0xff00FFED));

Method2:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources()
                    .getColor(R.color.bg_color)));

method3:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#3A1212")));

Ответ 3

У меня была та же проблема, answer from user1634451 работал, но только один раз (не включал несколько переключателей цвета в строке)

Это определенно зафиксировало это:

bar.setBackgroundDrawable(new ColorDrawable(getResources()
                    .getColor(R.color.app_bar_online)));

Вместо прямого связывания с цветом new ColorDrawable(R.color.app_bar_online)

Ответ 4

getColor устарел. используйте ContextCompat:

bar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, R.color.app_bar_online)));

Ответ 5

Если вы хотите установить цвет ActionBar и иметь цвет как String, это, похоже, сработает для меня.

    getSupportActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#993b3c4e")));

Возможно, вам придется включить и отключить заголовок, чтобы он был правильно обновлен/отображен, как в ответе user1634451, но мне не нужно было мой случай.