Dans mon bottomNavigationView je peux modifier par programme mes éléments de menu tout ce qu'il semble fonctionner, mais en fait ma mise en page est différente de si est cochée ou si je clique directement sur l'onglet. S'il vous plaît examiner les différences ci-dessous:Android BottomNavigationView menuItem ensemble vérifié ne fonctionne pas correctement
1) pour menuItem.setChecked(true)
:
2) lorsqu'un utilisateur clique directement sur l'icône, il effectuera l'animation et l'afficher sur la bonne
Eh bien ce que je veux vraiment, c'est de sélectionner le menuItem comme si l'utilisateur avait cliqué. Ne doit pas fonctionner en faisant menuItem.setChecked (true)?
S'il vous plaît prendre en considération la mise en page de définition suivante pour les éléments de menu:
<item android:id="@+id/menu_home"
android:title="@string/menu_home"
android:icon="@drawable/ic_home_black_24dp"
app:showAsAction="ifRoom" />
<item android:id="@+id/menu_hall_of_fame"
android:title="@string/menu_hall_of_fame"
android:icon="@drawable/ic_stars_black_24dp"
app:showAsAction="ifRoom" />
<item android:id="@+id/menu_info"
android:title="@string/menu_info"
android:icon="@drawable/ic_info_black_24dp"
app:showAsAction="ifRoom" />
<item android:id="@+id/menu_settings"
android:title="@string/menu_settings"
android:icon="@drawable/ic_settings_black_24dp"
app:showAsAction="ifRoom" />
et comment je vérifie la ligneMenu correcte:
MenuItem item = mBottomNav.getMenu().findItem(R.id.menu_about);
// update selected item
mSelectedItem = item.getItemId();
// uncheck the other items and select the one.
for (int i = 0; i< mBottomNav.getMenu().size(); i++) {
MenuItem menuItem = mBottomNav.getMenu().getItem(i);
menuItem.setChecked(menuItem.getItemId() == mSelectedItem);
}
Il existe une autre méthode pour effectuer une sélection d'un menuItem? Qu'est-ce que j'oublie ici?
sauib, que voulez-vous dire par 'MenuItemImpl' pouvez-vous expliquer un peu plus à propos de ce code .. – ePascoal