web-dev-qa-db-ja.com

プログラムでナビゲーションドロワーのメニュー項目を非表示にするにはどうすればよいですか?

ナビゲーションドロワーメニューでメニュー項目を非表示にし、以下のコードに従ってアプリケーションを使用しているユーザーのタイプに応じて表示したいメニュー項目は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);
6
Convict Moody

メニューを作成して使用することで修正しました

menu.findItem(R.id.nav_target)

@ 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);
27
Convict Moody