Как установить общее проверяемое поведение во всех группах в NavigationView?
Я создал две группы с уникальными идентификаторами (мне нужен разделитель), и они обе имеютcheckableBehavior
установлен вне замужем, Это позволяет одновременно проверять несколько элементов из разных групп, и это именно то, чего я пытаюсь избежать. Я хотел бы, чтобы один элемент был проверен максимум во всех группах.
Поскольку я не нашел способа сделать это в XML, я попытался реализовать простую логику вonNavigationItemSelected
снять отметку с предыдущего пункта меню:
if (previousItem != null)
previousItem.setChecked(false);
currentItem.setChecked(true);
ноsetChecked(false)
метод никогда не работал для меня - пункт остается проверенным.
Вот мой пример кода:
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;
}
});
Мне нужна подсказка! Благодарю.