Como definir o comportamento verificável compartilhado em todos os grupos no NavigationView?

Criei dois grupos com IDs únicos (preciso de um divisor) e ambos têmcheckableBehavior definido comosolteiro. Isso permite que vários itens de diferentes grupos sejam verificados de uma só vez, e é exatamente isso que estou tentando evitar. Eu gostaria de ter um item marcado no máximo, em todos os grupos.

Como não encontrei nenhuma maneira de fazer isso em XML, tentei implementar uma lógica simples noonNavigationItemSelected para desmarcar o item de menu anterior:

if (previousItem != null)
   previousItem.setChecked(false);
currentItem.setChecked(true);

massetChecked(false) O método nunca funcionou para mim - o item permanece marcado.

Aqui está o meu código de exemplo:

menu_navigation.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
        android:id="@+id/nav_group_1"
        android:checkableBehavior="single">
    <item
            android:id="@+id/nav_feed"
            android:title="@string/feed"/>
    <item
            android:id="@+id/nav_people"
            android:title="@string/people"/>
</group>
<group
        android:id="@+id/nav_group_2"
        android:checkableBehavior="single">
    <item
            android:id="@+id/nav_settings"
            android:title="@string/settings"/>
    <item
            android:id="@+id/nav_help_feedback"
            android:title="@string/help_feedback"/>
    <item
            android:id="@+id/nav_logout"
            android:title="@string/logout"/>
</group>

NavigationItemSelectedListener:

 mUiNavigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {
                        if (previousItem != null)
                           previousItem.setChecked(false);
                        currentItem.setChecked(true);
                        //...
                        changeCurrentFragment(...);
                        return true;
                    }
                });

Eu preciso de uma dica! Obrigado.

questionAnswers(6)

yourAnswerToTheQuestion