NavigationView项目未检查

时间:2015-07-26 23:55:37

标签: android androiddesignsupport navigationview

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

1 个答案:

答案 0 :(得分:0)

似乎子菜单无法检查by design

这是workaround

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