Android隐藏子菜单项

时间:2016-02-24 09:20:31

标签: java android android-layout navigation-drawer

我有一个导航菜单抽屉,设置了多个组和菜单,如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:title="Participant">
        <menu>
            <group android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_new"
                    android:icon="@drawable/ic_menu_share"
                    android:title="@string/nav_new" />
                <item
                    android:id="@+id/nav_start"
                    android:icon="@drawable/ic_menu_slideshow"
                    android:title="@string/nav_start" />
                <item
                    android:id="@+id/nav_delete"
                    android:icon="@drawable/ic_menu_manage"
                    android:title="@string/nav_delete" />
            </group>
        </menu>
    </item>

    <item android:title="Sensors">
        <menu>
            <group android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_raw"
                    android:icon="@drawable/ic_menu_send"
                    android:title="@string/nav_raw" />
                <item
                    android:id="@+id/nav_graphs"
                    android:icon="@drawable/ic_menu_gallery"
                    android:title="@string/nav_graphs" />
            </group>
        </menu>
    </item>

</menu>

我正在尝试将其中一个子菜单项设置为不可见。假设我想隐藏Start项目。我试过这样做:

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu navMenu = navigationView.getMenu();
navMenu.getItem(1).setVisible(false);

我希望它隐藏第二项(开始),但它只是隐藏整个第二个菜单组。

获得像这样的子项目的正确方法是什么?或者我只是错误地布置我的菜单xml?

1 个答案:

答案 0 :(得分:0)

请改为尝试:

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu navMenu = navigationView.getMenu();
navMenu.getItem(0).getSubMenu().getItem(1).setVisible(false);