Значок в BottomNavigationView не меняет цвет после смены темы

#java #android #themes

#java #Android #темы

Вопрос:

Я реализовал логику смены темы в своем приложении для Android. К сожалению, когда я меняю тему и вызываю функцию воссоздания, значок в BottomNavigationView не меняет цвет фона, пожалуйста, найдите мой код:

     private void setBadge(Integer newMessageCount) {
        BadgeDrawable badge = bottomNav.getOrCreateBadge(R.id.nav_messages);
        badge.setNumber(newMessageCount);
        badge.setBackgroundColor(ThemeColors.getColor(this, R.attr.secondaryColor));
        badge.setBadgeTextColor(ThemeColors.getColor(this, R.attr.secondaryTextColor));
    }
  
 public class ThemeColors {

    public static @ColorInt
    int getColor(Context context, int attrColor) {
        return ContextCompat.getColor(context, getColorResourceId(context, attrColor));
    }

    public static int getColorResourceId(Context context, int attrColor) {
        TypedValue typedValue = new TypedValue();
        context.getTheme().resolveAttribute(attrColor, typedValue, true);
        return typedValue.resourceId;
    }
}
  

Не могли бы вы сообщить мне, почему цвет фона не меняется?
С уважением

Комментарии:

1. Как вы можете получить или создать этот значок? Что это вообще такое?

2. Я вызываю getOrCreateBadge из метода onCreate