Подтвердить что ты не робот

Как я могу получить пункт меню в NavigationView?

<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"
    />

Я использую android.support.design.library для проектирования материалов.

Я хочу скрыть некоторые пункты меню, когда пользователь не выполнил вход в систему.

Теперь мне трудно получить элемент меню в NavigationView.

Я пробовал:

MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);

Но он не работает.

Как я могу это сделать?

Спасибо.

4b9b3361

Ответ 2

Я думаю, вы должны сначала получить меню следующим образом:

navigationView.getMenu().findItem(R.id.login).setVisible(false);

Основной аспект этого кода - вызвать navigationView.getMenu(), чтобы получить меню из этого, у вас будет ссылка текущего надутого меню и вызовите findViewById(), после чего вы сможете что угодно.

Для группы элементов ex: -

<group
android:id="@+id/group_1"
android:checkableBehavior="single"
android:visible="false">
...

а затем вы можете управлять этим, используя: -

navigationView.getMenu().setGroupVisible(R.id.group_1, true)

Ответ 3

просто используйте ниже

nav_draw = (NavigationView) findViewById(R.id.nav_draw);
nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);