如何在 NavigationView 中获取菜单项?
How can I get menu item in 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
进行 material 设计。
我想要的是在用户未登录时隐藏一些菜单项。
现在我无法获取 NavigationView
中的菜单项。
我试过:
MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);
但是没用。
我该怎么做?
谢谢。
的方法得到
Menu menuNav = mNavigationView.getMenu();
然后您可以通过
查找特定项目
MenuItem logoutItem = menuNav.findItem(R.id.menu_logout);
见Official documentation for NavigationView
只需使用以下方式
nav_draw = (NavigationView) findViewById(R.id.nav_draw);
nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);
我想你应该首先得到这样的菜单:
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)
您可以通过
获得物品
navigationView.Menu.GetItem(menu_index)
View navHeader=navigationView.getHeaderView(0);[![enter image description here][1]][1]
导航菜单=navigationView.getMenu();
列表项
//work for login and logout menu
if (MyPreferences.getBoolean(BaseActivity.this,ConstantValues.KEY_IS_LOGIN)){
navMenu.getItem(0).setVisible(false);
navMenu.getItem(9).setVisible(true);
}else {
navMenu.getItem(0).setVisible(true);
navMenu.getItem(9).setVisible(false);
}
<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
进行 material 设计。
我想要的是在用户未登录时隐藏一些菜单项。
现在我无法获取 NavigationView
中的菜单项。
我试过:
MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);
但是没用。
我该怎么做?
谢谢。
Menu menuNav = mNavigationView.getMenu();
然后您可以通过
查找特定项目MenuItem logoutItem = menuNav.findItem(R.id.menu_logout);
见Official documentation for NavigationView
只需使用以下方式
nav_draw = (NavigationView) findViewById(R.id.nav_draw);
nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);
我想你应该首先得到这样的菜单:
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)
您可以通过
获得物品navigationView.Menu.GetItem(menu_index)
View navHeader=navigationView.getHeaderView(0);[![enter image description here][1]][1]
导航菜单=navigationView.getMenu();
列表项
//work for login and logout menu if (MyPreferences.getBoolean(BaseActivity.this,ConstantValues.KEY_IS_LOGIN)){ navMenu.getItem(0).setVisible(false); navMenu.getItem(9).setVisible(true); }else { navMenu.getItem(0).setVisible(true); navMenu.getItem(9).setVisible(false); }