我正在尝试在NavigationView中的同一组的项目之间添加分隔符,我知道这可以使用不同的组但我需要它们与单 checkablebehavior位于同一组中
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/first"
android:checkableBehavior="single">
<item
android:id="@+id/all_categories"
android:icon="@mipmap/ic_launcher"
android:title="All Categories" />
<item android:title="Standard Categories" />
<item
android:id="@+id/transit"
android:icon="@drawable/ic_airplane_1_2"
android:title="Transit" />
<item
android:id="@+id/memberships"
android:icon="@drawable/ic_id_card_3_2"
android:title="Memberships" />
</group>
</menu>
答案 0 :(得分:0)
您实际上仍然可以通过使用不同的组来执行此操作,但您要做的是取消选择另一个组中之前选择的项目。您可以按照以下方式执行此操作(取自How to create a simple divider in the new NavigationView?中的第二个热门答案 - 这是有效的,我已经检查了它 - 它非常直观):
public boolean onNavigationItemSelected(final MenuItem menuItem) {
//if an item from extras group is clicked,refresh NAV_ITEMS_MAIN to remove previously checked item
if (menuItem.getGroupId() == NAV_ITEMS_EXTRA) {
navigationView.getMenu().setGroupCheckable(NAV_ITEMS_MAIN, false, true);
navigationView.getMenu().setGroupCheckable(NAV_ITEMS_EXTRA, true, true);
}else{
navigationView.getMenu().setGroupCheckable(NAV_ITEMS_MAIN, true, true);
navigationView.getMenu().setGroupCheckable(NAV_ITEMS_EXTRA, false, true);
}
//Update highlighted item in the navigation menu
menuItem.setChecked(true);
}