我想从我的NavigationView中删除属于我的DrawerLayout的特定组

我尝试使用在堆栈上找到的以下代码行删除该组,但是它不起作用。

1)。按ID删除分组

NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view);
menu.removeGroup(R.id.myPagesGroup);


2)。通过ID设置可见性

menu.setGroupVisible(R.id.myPagesGroup, false);


3)。首先从另一个组项目中查找子菜单,然后设置可见性

menu.findItem(R.id.nav_support).getSubMenu().setGroupVisible(R.id.myPagesGroup, false);


代码段1和2不会给我错误,该组只是可见的。

片段3给了我NullPointerException

java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.SubMenu.setGroupVisible(int, boolean)' on a null object reference


但是,使用下面的代码删除项目确实可行。

menu.removeItem(R.id.nav_calendar);


以下是实际菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group
    android:id="@+id/favoritesGroup"
    android:checkableBehavior="single">
    <item
        android:id="@+id/nav_calendar"
        android:icon="@mipmap/ic_calendar"
        android:title="Kalender"/>
    <item
        android:id="@+id/menu_none"
        android:title=""
        android:visible="false"/>
    <item
        android:id="@+id/nav_availabilityList"
        android:icon="@mipmap/ic_calendar"
        android:title="Tillgänglighet"/>
    <item
        android:id="@+id/nav_available_jobs"
        android:icon="@mipmap/ic_assignment"
        android:title="Lediga Jobb"/>
    <item
        android:id="@+id/nav_my_contacts"
        android:icon="@mipmap/ic_phone"
        android:title="Kontakt"/>
    <item
        android:id="@+id/nav_contactSc"
        android:visible="false"
        android:icon="@mipmap/ic_phone"
        android:title="Kontakt"/>

    <item
        android:id="@+id/nav_support"
        android:icon="@mipmap/ic_phone"
        android:title="Support"/>
</group>

<item android:title="Mina Sidor">
    <menu>
        <group
            android:id="@+id/myPagesGroup"
            android:checkableBehavior="single">
            <item
                android:id="@+id/nav_my_commissions"
                android:icon="@mipmap/ic_commissions"
                android:title="Mina Uppdrag"/>
            <item
                android:id="@+id/nav_commission_schedule"
                android:icon="@mipmap/ic_commission_schedule"
                android:title="Uppdragsschema"/>
            <item
                android:id="@+id/nav_vacation"
                android:icon="@mipmap/ic_vacation_application"
                android:title="Semesteransökan"/>
            <item
                android:id="@+id/nav_employment_terms"
                android:icon="@mipmap/ic_employment_terms"
                android:title="Anställningsvillkor"/>
            <item
                android:id="@+id/nav_document"
                android:icon="@mipmap/ic_document"
                android:title="Dokument"/>
            <item
                android:id="@+id/nav_consultant_agent"
                android:icon="@mipmap/ic_consultant_agent"
                android:title="Konsultombud"/>
            <item
                android:id="@+id/nav_file_upload"
                android:icon="@mipmap/ic_file_upload"
                android:title="Ladda upp intyg"/>
            <item
                android:id="@+id/nav_my_tests"
                android:icon="@mipmap/ic_tests"
                android:title="Mina tester"/>
            <item
                android:id="@+id/nav_matching_jobs"
                android:icon="@mipmap/ic_matching_jobs"
                android:title="Matchande jobb"/>
            <item
                android:id="@+id/nav_my_applications"
                android:icon="@mipmap/ic_applications"
                android:title="Mina ansökningar"/>
            <item
                android:id="@+id/nav_my_profile"
                android:icon="@mipmap/ic_profile"
                android:title="Min profil"/>
        </group>
    </menu>

</item>

<item android:title="Övrigt">
    <menu>
        <group
            android:id="@+id/generalGroup"
            android:checkableBehavior="single">
            <item
                android:id="@+id/nav_looking_for_job"
                android:icon="@mipmap/ic_assignment"
                android:title="Söker du jobb?"/>
            <item
                android:id="@+id/nav_looking_for_personel"
                android:icon="@mipmap/ic_people"
                android:title="Söker du personal?"/>
            <item
                android:id="@+id/nav_about_us"
                android:icon="@mipmap/ic_office"
                android:title="Om oss"/>

            <item
                android:id="@+id/nav_logout"
                android:icon="@mipmap/ic_phone"
                android:title="Logga ut"/>
        </group>
    </menu>
</item>


</menu>

最佳答案

你试过了吗?

Menu nav_Menu = navigationView.getMenu();
nav_Menu.findItem(R.id.myPagesGroup).setVisible(false);


对于团体

navigationView.getMenu().setGroupVisible(R.id.myPagesGroup, false);

关于android - Android Studio-无法从NavigationView删除子菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44021852/

10-11 22:21
查看更多