我想从我的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/