2

Android デザイン サポート ライブラリを使用して、ドロワー レイアウトを作成しています。

NavigationViewには、サブメニューを含むメニューグループがあります。

これが私のメニューファイルです。

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_home"
            android:icon="@drawable/ic_dashboard"
            android:title="Home" />
        <item
            android:id="@+id/nav_messages"
            android:icon="@drawable/ic_event"
            android:title="Messages" />
        <item
            android:id="@+id/nav_friends"
            android:icon="@drawable/ic_headset"
            android:title="Friends" />
        <item
            android:id="@+id/nav_discussion"
            android:icon="@drawable/ic_forum"
            android:title="Discussion" />

        <item android:title="Sub Menus">
            <menu>
                <item
                    android:id="@+id/sub_one"
                    android:icon="@drawable/ic_dashboard"
                    android:title="Sub item 1" />
                <item
                    android:id="@+id/sub_two"
                    android:icon="@drawable/ic_forum"
                    android:title="Sub item 2" />
            </menu>
        </item>
    </group>

私のアイテムクリックリスナー

navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {

                        Log.d("Item Click : ", menuItem.getTitle().toString());
                        menuItem.setChecked(true);
                        mDrawerLayout.closeDrawers();
                        return true;
                    }
                });

ただし、私の問題は、最初の 4 つのメイン メニュー項目のみが適切にチェックされ、サブメニュー クリック イベントも機能しますが、チェックされないことです。代わりに、以前のメイン メニューはチェックされたままになります。

4

2 に答える 2

2

サブアイテムを 1 つのアイテムとして機能させ、全体を強調しようとします。サブアイテムのグループとして単一の動作が必要です。下記参照:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_dashboard"
        android:title="Home" />
  <item
        android:id="@+id/nav_check"
        android:icon="@drawable/ic_cloud_queue_black_24dp"
        android:title="Check" />
</group>

<!-- Sub items -->

<item android:title="Other">
  <menu>
    <group android:checkableBehavior="single">
      <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_white_24dp"
            android:title="settings" />
      <item
          android:icon="@drawable/ic_forum"
          android:title="forum" />
    </group>
  </menu>
</item>

于 2016-07-07T18:03:00.497 に答える