NavigationView 项目不检查

NavigationView items not checking

在我的 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;
}

子菜单似乎无法检查by design

这是一个workaround:

mNavigationView.getMenu().clear();
mNavigationView.inflateMenu(R.menu.menu_drawer);
mNavigationView.getMenu().findItem(mNavItemId).setChecked(true);