导航视图选择多个项目

时间:2016-08-08 16:00:09

标签: android xml navigation

我实现了导航视图(支持库24.0.0):

但是从那以后我一直试图控制一种奇怪的行为。

这是我的drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:title="Categories">
        <menu>
            <group android:checkableBehavior="single">
                <item
                    android:id="@+id/navigation_item_1"
                    android:icon="@drawable/ic_news"
                    android:title="Top Stories" />
                <item
                    android:id="@+id/navigation_item_2"
                    android:icon="@drawable/ic_music"
                    android:title="Entertainment" />
                <item
                    android:id="@+id/navigation_item_3"
                    android:icon="@drawable/ic_sport"
                    android:title="Sport" />
                <item
                    android:id="@+id/navigation_item_4"
                    android:icon="@drawable/ic_lifestyle"
                    android:title="Lifestyle" />
                <item
                    android:id="@+id/navigation_item_5"
                    android:icon="@drawable/ic_tech"
                    android:title="Technology" />
                <item
                    android:id="@+id/navigation_item_6"
                    android:icon="@drawable/ic_world"
                    android:title="International" />

            </group>
        </menu>
    </item>

</menu>

但结果是:

The Result Image

其中只应选择一个。

1 个答案:

答案 0 :(得分:0)

我用以下方法解决了它:

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                for (int i = 0; i < 6; i++) {
                    MenuItem top = navigationView.getMenu().getItem(0).getSubMenu().getItem(i);
                    if (top.isChecked()) top.setChecked(false);
                }
                return true;
            }
        });
  1. 取消选中菜单中的所有项目
  2. return true,用于检查点击的项目。