Pour ceux qui utilisent encore SupportLibrary < 25.3.0
Je ne suis pas sûr de savoir si c'est une réponse complète à cette question, mais mon problème est très similaire - j'ai du processus d' back
appuyez sur le bouton et amener l'utilisateur à l'onglet précédent où il était. Donc, peut-être que ma solution sera utile pour quelqu'un:
private void updateNavigationBarState(int actionId){
Menu menu = bottomNavigationView.getMenu();
for (int i = 0, size = menu.size(); i < size; i++) {
MenuItem item = menu.getItem(i);
item.setChecked(item.getItemId() == actionId);
}
}
S'il vous plaît, gardez à l'esprit que si l'utilisateur presse de navigation de l'onglet BottomNavigationView
de ne pas effacer l'élément sélectionné, de sorte que vous devez appeler cette méthode dans votre onNavigationItemSelected
après le traitement de l'action de navigation:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.some_id_1:
// process action
break;
case R.id.some_id_2:
// process action
break;
...
default:
return false;
}
updateNavigationBarState(item.getItemId());
return true;
}
Quant à la sauvegarde de l'état de l'instance, je pense que vous pourriez jouer avec le même action id
de la navigation à vue et trouver une solution adaptée.