Нижняя навигация по значку темной темы становится темной после добавления значка уведомления android

#java #android #android-dark-theme

Вопрос:

Я хочу спросить об android (java). Ранее я разрабатывал приложения только для светлых тем, но поскольку устройство теперь предоставляет встроенную функцию темной темы, приложение должно быть изменено на темную тему. до того, как я дал код для значка уведомления, все цвета выглядели нормально в темной теме, но когда я добавил значок уведомления в некоторые нижние меню навигации, значок в меню изменился на темный цвет, и я не знаю, почему. Может быть, у кого-то есть решение этой проблемы, с которой я столкнулся. Здесь я показываю скриншоты и некоторые из моих фрагментов кода.

Обычная Тема

Forced with dark theme

and here are some of my code snippets

     orderBadge = bottomNavigationView.getOrCreateBadge(R.id.Order_nav);
    cartBadge = bottomNavigationView.getOrCreateBadge(R.id.Cart_nav);
    orderBadge.setVisible(false);
    cartBadge.setVisible(false);

    loadNavData(number); //load nav badge data

    bottomNavigationView.setOnItemSelectedListener(menuItem -> {
        if(menuItem.getItemId() == R.id.Home_nav){
            if(bottomNavigationView.getSelectedItemId() != R.id.Home_nav){
                Fragment selectedFragment = new HomeFragments();
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
            }
        }else if(menuItem.getItemId() == R.id.Cart_nav){
            if(bottomNavigationView.getSelectedItemId() != R.id.Cart_nav){
                Fragment selectedFragment = new CartFragments();
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
            }
        }else if(menuItem.getItemId() == R.id.Order_nav){
            if(bottomNavigationView.getSelectedItemId() != R.id.Order_nav){
                orderBadge.setVisible(false); //remove badge when open
                Fragment selectedFragment = new OrderFragments();
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
            }
        }else if(menuItem.getItemId() == R.id.Help_nav){
            if(bottomNavigationView.getSelectedItemId() != R.id.Help_nav){
                Fragment selectedFragment = new HelpFragments();
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
            }
        }
        return true;
    });

private void loadNavData(String phone) {
    loadAmountCart(); //load cart badge
    Call<String> call = serverAPI.getNavOrder(phone);
    call.enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            if(response.body() != null){
                int number = Integer.parseInt(response.body());
                if(number > 0){
                    orderBadge.setVisible(true);
                    orderBadge.setNumber(number);
                }
            }
        }

        @Override
        public void onFailure(Call<String> call, Throwable t) {}
    });
}
 

I hope someone can help me solve this problem, thanks in advance:)