Недавно я применил метод onBackPressed для своих фрагментов, он работает хорошо, но с моей панелью навигации есть небольшая ошибка ...
Изображения лучше, чем длинная речь!
На этом снимке: приложение запущено
На этом снимке: я нажал последнюю кнопку справа (информация)
На этом снимке: я хочу вернуться к первой функции (карте), поэтому я нажал клавишу возврата
Как вы можете видеть, на последнем экране отображается хороший фрагмент, но кнопка "Информация" на панели навигации все еще нажата!
Это мой код для запуска фрагментов:
private BottomNavigationView.OnNavigationItemSelectedListener navListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.nav_profile:
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if(token ==null) {
selectedFragment = new EnregistrementFragment();
//selectedFragment = new ProfileFragment();
}else{
selectedFragment = new ProfileFragment();
}
break;
case R.id.nav_map:
selectedFragment = new LocalisationFragment();
break;
case R.id.nav_group:
selectedFragment = new ScoreFragment();
break;
case R.id.nav_faq:
selectedFragment = new InfosFragment();
break;
case R.id.nav_favorite:
selectedFragment = new FavoriteFragment();
break;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, selectedFragment);
transaction.addToBackStack("FirstFragment");
transaction.commit();
return true;
}
};
И мой метод onBackPressed ():
public void onBackPressed() {
int count = getFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
//additional code
} else {
getFragmentManager().popBackStack();
}
}
Мой вопрос: есть ли у вас идея обновитьНавбар?
Заранее спасибо и очень жаль за плохой английский!