从NavigationView项目中删除Divider

时间:2016-07-03 09:25:47

标签: android material-design

我制作了一个由此.xml填充的导航视图:

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


<item android:title="Menu A"
    >
    <menu
       >
        <group
            android:checkableBehavior="single"
            android:orderInCategory="2" 
            android:id="@+id/gr"
            >
            <item
                android:id="@+id/a1"
                android:title="A1"
                />

        </group>

    </menu>
</item>

<item android:title="Menu B"
    android:orderInCategory="3"
    >
    <menu>
        <group android:checkableBehavior="single">
            <item
                android:id="@+id/b1"
                android:title="B1"
                />
            <item
                android:id="@+id/b2"
                android:title="B2"
                />

            <item
                android:id="@+id/b3"
                android:title="B3"
                />
        </group>
    </menu>

</item>

我想以编程方式将一项添加到NavigationView中。 我正在使用以下代码行添加该项:

MenuItem item = menu.add(R.id.gr,Menu.NONE,2,“A2”);

在该项目(A2)上方出现分隔符。我不想要这个分隔符。我该如何删除它?

enter image description here

注意:我不想让分隔符的颜色透明。这将使所有分隔符消失。

1 个答案:

答案 0 :(得分:1)

将新项目添加到SubMenu,而不是Menu。因此,项目上方的分隔符不会出现。

Menu menu = navigationView.getMenu();
MenuItem menuItem = menu.getItem(0);
SubMenu subMenu = menuItem.getSubMenu();
subMenu.add(R.id.gr, Menu.NONE, 2, "A2");
subMenu.setGroupCheckable(R.id.gr, true, true);

如果要为组定义可检查行为,请调用subMenu.setGroupCheckable(R.id.gr, true, true)。这应该在添加组的项目后调用。