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

я использую

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

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

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

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

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

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"))); 

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

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

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

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

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

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

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

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

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

Если вы хотите изменить цвет или фон панели действий прагматично, просто используйте,

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getSupportActionBar().setBackgroundDrawable(getDrawable(R.drawable.white_background)); } 

white_background.xml

   

  • Просмотр стека действий задачи
  • Пользовательские макеты уведомлений и цвета текста
  • Холст Android Studio: рисование слишком большого растрового изображения
  • CalledFromWrongThreadException: только исходный stream, создавший иерархию представлений, может касаться представлений
  • android.os.NetworkOnMainThreadException с android 4.2
  • Как исправить ошибку android 4.4.2 ClassNotFoundException: не нашел class «com.google.firebase.provider.FirebaseInitProvider» по пути: DexPathList
  • OnItemCLickListener не работает в listview
  • разница между @id и @android: id
  • Android FragmentManager BackStackRecord.run бросает NullPointerException
  • Как отправить несколько изображений на сервер с помощью MultipartEntity от android
  • Ошибка: com.android.tools.aapt2.Aapt2Exception: ошибка AAPT2: проверить журналы для получения более подробной информации
  • Давайте будем гением компьютера.