2016-02-26 216 views
4

我想隐藏在抽屉式导航菜单的菜单项,并显示它取决于根据以下菜单码使用应用程序的用户的类型,则返回null:如何以编程方式隐藏导航抽屉菜单项?

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open,R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    MenuItem target = (MenuItem)drawer.findViewById(R.id.nav_target); 

    target.setVisible(false); 
+0

您是否尝试过使用'menu.findItem(R.id.nav_target)'? – droid8421

+0

@ droid8421不,我没有,因为我需要声明菜单。 –

+0

你尝试http://stackoverflow.com/a/29239511/3549047 – king

回答

18

通过创建一个固定它菜单和使用

menu.findItem(R.id.nav_target) 

as @ droid8421建议。

固定码:

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

Menu menu =navigationView.getMenu(); 

MenuItem target = menu.findItem(R.id.nav_target); 

target.setVisible(false);