как сделать, чтобы подменю в навигации по ящику помечалось при нажатии на него?

#android #navigation-drawer #submenu

#Android #навигация-ящик #подменю

Вопрос:

Я создал навигационный ящик, используя это drawer_menu.xml коды являются :

 <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">
    <group android:checkableBehavior="single">
        <item
            android:id="@ id/home"
            android:icon="@drawable/ic_home"
            android:title="Home"></item>
        <item
            android:id="@ id/profile"
            android:icon="@drawable/ic_profil"
            android:title="Profile"></item>
    </group>
    <item android:title="Communicate">
        <menu>
            <item
                android:id="@ id/message"
                android:icon="@drawable/ic_message"
                android:title="Message"></item>
            <item
                android:id="@ id/share"
                android:icon="@drawable/ic_share"
                android:title="Share"></item>
        </menu>
    </item>
</menu>
  

Однако, когда я нажал на пункт меню сообщений, который находится в подкатегории, он не отмечен, вместо этого он помечен только элементом, которого нет в подкатегории. например, следующее :

нажмите, чтобы увидеть изображение

Я был бы рад, если бы кто-нибудь мог помочь в этом 🙂 спасибо.

Ответ №1:

Как и у вас, 3 items с 3-м элементом (communicate) будет sub items , поэтому вам нужно добавить <group android:checkableBehavior="single"> под этим подпунктом, также у вас есть закрыть свой тег только с 2 элементами (home, profile), вы не включили 3-й элемент. попробуйте закрыть его в конце, как я сделал в приведенном ниже коде :

  <group android:checkableBehavior="single">
        <item
            android:id="@ id/home"
            android:icon="@drawable/ic_home"
            android:title="Home"></item>
        <item
            android:id="@ id/profile"
            android:icon="@drawable/ic_profil"
            android:title="Profile"></item>


<item android:title="Communicate">
        <menu>
              <group android:checkableBehavior="single">//selecting one item from group
            <item
                android:id="@ id/message"
                android:icon="@drawable/ic_message"
                android:title="Message"></item>
            <item
                android:id="@ id/share"
                android:icon="@drawable/ic_share"
                android:title="Share"></item>
              </group>
        </menu>
    </item>
</group>//add this
  

Комментарии:

1. это сработало 🙂 почему тег первой группы должен закрываться на 3-м элементе? поскольку «communicate» не используется для checkableBehavior.