Hala SupportLibrary <25.3.0 kullananlar için
Bunun bu soruya tam bir yanıt olup olmadığından emin değilim, ancak benim sorunum çok benzerdi - back
düğmeye basmayı işlemek ve kullanıcıyı bulunduğu önceki sekmeye getirmek zorunda kaldım . Yani, belki benim çözümüm birileri için yararlı olabilir:
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);
}
}
Lütfen, kullanıcı diğer gezinme sekmesine BottomNavigationView
basarsa o anda seçili öğeyi temizlemeyeceğini, bu nedenle onNavigationItemSelected
gezinme eylemini işledikten sonra bu yöntemi çağırmanız gerektiğini unutmayın :
@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;
}
Örnek durumunun kaydedilmesiyle ilgili olarak, aynı action id
navigasyon görünümü ile oynayıp uygun çözümü bulabileceğinizi düşünüyorum .
BottomNavigationView
herhangi bir dahili durum kaydetme yapmıyor. Muhtemelen bunun gelecekteki bir güncellemeye dahil edilmesini bekliyoruz. Kopyalayın (biraz daha fazla bilgi ile) burada: stackoverflow.com/questions/40236786/…