Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android NavigationView sub-menu heading not showing

Hi I am using android NavigationView. I have a group of items and sub items as Menu items for the drawer.

Here the sub-menu items are appearing below the divider after the main menu items, but the problem is the heading for sub menu is not showing up. Sub items are showing just just below the divider without header. I cant figure out what is the problem.

Inserting a menu tag inside sub items group and putting all sub items inside that menu tag will fix the issue but that makes the sub items getting selected(appearing selected) only after selecting it 2 times. How can I fix this?

Here is my code:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
        <group>
            <item
                android:id="@+id/nav_home"
                android:checkable="true"
                android:icon="@drawable/ic_person"
                android:title="Item1" />
            <item
                android:id="@+id/nav_messages"
                android:checkable="true"
                android:icon="@drawable/ic_attach"
                android:title="Item2" />
            <item
                android:id="@+id/nav_friends"
                android:checkable="true"
                android:icon="@drawable/icon"
                android:title="Item3" />
            <item
                android:id="@+id/nav_discussion"
                android:checkable="true"
                android:icon="@drawable/ic_exit"
                android:title="Item4" />

        </group>



<item android:title="Select Submenu">

    <group  android:id="@+id/group2"
            android:title="Select Submenu"
            >

            <item
                android:id="@+id/sub1"
                android:checkable = "true"
                android:icon="@drawable/sub_icon1"
                android:title="Sub Item1" />
            <item
                android:id="@+id/open"
                android:checkable = "true"
                android:icon="@drawable/sub_icon2"
                android:title="Sub Item2" />
            <item
                android:id="@+id/active"
                android:checkable = "true"
                android:icon="@drawable/sub_icon3"
                android:title="Sub Item3" />

        </group>
</item>

like image 474
Sudheesh Mohan Avatar asked Oct 18 '25 00:10

Sudheesh Mohan


1 Answers

Use this . You are enclosing group into item.

see this link for design library.

Replace your file with this

<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" />
</group>

<item android:title="Sub items"
      android:layout_gravity="bottom"
    >
    <menu>
        <item
            android:icon="@drawable/ic_dashboard"
            android:title="Sub item 1" />
        <item
            android:icon="@drawable/ic_forum"
            android:title="Sub item 2" />
    </menu>
</item>

This is my output

enter image description here

like image 80
N J Avatar answered Oct 19 '25 14:10

N J