<Android.support.design.widget.NavigationView
Android:id="@+id/drawer_nav"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="start"
Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/menu_drawer"
/>
J'utilise Android.support.design.library
pour la conception des matériaux.
Ce que je veux, c'est masquer certains éléments de menu lorsque l'utilisateur n'est pas connecté.
Maintenant, j'ai du mal à obtenir l'élément de menu dans NavigationView
.
J'ai essayé:
MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);
Mais ça ne marche pas.
Comment puis-je faire cela?
Merci.
Vous pouvez obtenir cela par la méthode de NavigationView.getMenu ()
Menu menuNav = mNavigationView.getMenu();
Ensuite, vous pouvez trouver un élément spécifique par
MenuItem logoutItem = menuNav.findItem(R.id.menu_logout);
Je pense que vous devriez d'abord obtenir le menu comme ceci:
navigationView.getMenu().findItem(R.id.login).setVisible(false);
L'aspect principal de ce code appelle navigationView.getMenu () pour obtenir le menu à partir de cela, vous aurez une référence du menu gonflé actuel et appelez findViewById () et après cela, vous pourrez tout ce que vous voulez.
Pour le groupe d'articles ex: -
<group
Android:id="@+id/group_1"
Android:checkableBehavior="single"
Android:visible="false">
...
et ensuite vous pouvez contrôler cela en utilisant: -
navigationView.getMenu().setGroupVisible(R.id.group_1, true)
utilisez simplement ci-dessous
nav_draw = (NavigationView) findViewById(R.id.nav_draw);
nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);