如何在NavigationView中的同一组中的项目之间添加分隔符

时间:2016-01-10 09:07:54

标签: android navigationview

我正在尝试在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>

1 个答案:

答案 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);
}