#java #android #android-dark-theme
Вопрос:
Я хочу спросить об android (java). Ранее я разрабатывал приложения только для светлых тем, но поскольку устройство теперь предоставляет встроенную функцию темной темы, приложение должно быть изменено на темную тему. до того, как я дал код для значка уведомления, все цвета выглядели нормально в темной теме, но когда я добавил значок уведомления в некоторые нижние меню навигации, значок в меню изменился на темный цвет, и я не знаю, почему. Может быть, у кого-то есть решение этой проблемы, с которой я столкнулся. Здесь я показываю скриншоты и некоторые из моих фрагментов кода.
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:)