Элементы 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;
}

person jacobz    schedule 26.07.2015    source источник
comment
SubMenuItems нельзя проверить в NavigationView   -  person Moinkhan    schedule 28.07.2015
comment
@Moinkhan Как мне оформить меню, чтобы его можно было проверить?   -  person jacobz    schedule 28.07.2015


Ответы (1)


Похоже, что подменю нельзя проверить преднамеренно.

Вот обходной путь:

mNavigationView.getMenu().clear();
mNavigationView.inflateMenu(R.menu.menu_drawer);
mNavigationView.getMenu().findItem(mNavItemId).setChecked(true);
person jacobz    schedule 01.08.2015