#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.