在Android上完全删除NavigationDrawer中的子菜单项

时间:2017-07-14 12:50:50

标签: android material-design android-navigation-drawer

我使用以下代码段隐藏了NavigationDrawer中子菜单项的可见性,但它只是删除了文本,并没有删除抽屉中包含的空间。我想完全删除商品,而不仅仅是可见性。

mNavigationView = (NavigationView) findViewById(R.id.navigationViewReports);

mNavigationView.setNavigationItemSelectedListener(Reports_DrawerMain.this);
mNavigationView.getMenu().findItem(R.id.reportsMenu).getSubMenu().setGroupVisible(R.id.limitations, false);
for (int i = 0; i < mNavigationView.getMenu().findItem(R.id.reportsMenu).getSubMenu().size(); i++) {
 Log.I(TAG, "Menu: " + mNavigationView.getMenu().findItem(R.id.reportsMenu).getSubMenu().getItem(i));
}
mNavigationView.refreshDrawableState();

但是当我使用删除组功能时,它不会自行删除它。我想从菜单中删除该项目,使其不占用任何空间。

mNavigationView.getMenu().findItem(R.id.reportsMenu).getSubMenu().removeGroup(R.id.limitations);

使用支持库编译&#39; com.android.support:support-v4:23.1.1&#39;

1 个答案:

答案 0 :(得分:0)

所以我只需要写另一行,它会显示更新的结果。

mNavigationView.inflateMenu(R.menu.temp);

其中temp是一个没有项目的xml。

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

这可能不是一个正确的解决方案,但它可以胜任。