0

在我的NavigationView中,我将大部分项目划分为带有子标题的部分。我通过在menu里面放一个来实现这一点item

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/drawer_top"
            android:title="@string/top"/>

        <item
            android:id="@+id/drawer_header"
            android:title="@string/header1">
            <menu>
                <item
                    android:id="@+id/drawer_item1"
                    android:title="@string/item1"/>
                <item
                    android:id="@+id/drawer_item2"
                    android:title="@string/item2"/>
            </menu>
        </item>
    </group>
</menu>

但是,这会导致第一项,drawer_top,被永远检查。其他项目不可勾选。我的onNavigationItemSelected代码如下所示:

@Override
public boolean onNavigationItemSelected(final MenuItem menuItem) {
    menuItem.setChecked(true);

    ... (navigate)
    return true;
}
4

1 回答 1

0

似乎子菜单不是设计可检查的

这是一种解决方法

mNavigationView.getMenu().clear();
mNavigationView.inflateMenu(R.menu.menu_drawer);
mNavigationView.getMenu().findItem(mNavItemId).setChecked(true);
于 2015-08-01T20:21:01.813 回答