0

I have Android Kotlin project, where I am trying to separate NavigationView's menu items from each other like so: separated items by grouping them

But I am not satisfied with spacing between groups, they are not matching my desired UI design. And Also I want to have separator lines shorter than it appears something like this: my desired UI

So I want to customize separator line..

Here is my NavigationView:

  <com.google.android.material.navigation.NavigationView
            android:id="@+id/nvMainMenu"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="start"
            android:background="@color/white"
            android:theme="@style/NavigationViewItem"
            app:elevation="0dp"
            app:itemBackground="@drawable/menu_item_bg_selector"
            app:layout_constraintBottom_toTopOf="@id/btnLogOut"
            app:layout_constraintTop_toBottomOf="@id/header"
            app:menu="@menu/main_drawer" />

here is my main_drawer.xml

<?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
        android:id="@+id/menu_group_menu"
        android:checkableBehavior="single"
        android:paddingBottom="15dp">
        <item
            android:id="@+id/nav_home"
            android:icon="@drawable/ic_home"
            android:title="@string/home" />
    </group>
    <group
        android:id="@+id/menu_group_2"
        android:checkableBehavior="single"
        >
        <item
            android:id="@+id/nav_my_products"
            android:icon="@drawable/ic_my_products"
            android:title="@string/my_products" />
        <item
            android:id="@+id/nav_p2p_cards"
            android:icon="@drawable/ic_p2p_cards"
            android:title="@string/p2p_cards" />
        <item
            android:id="@+id/nav_offers"
            android:icon="@drawable/ic_offers"
            android:title="@string/offers" />
    </group>
    <group
        android:id="@+id/menu_group_3"
        android:checkableBehavior="single">
        <item
            android:id="@+id/nav_transfers"
            android:icon="@drawable/ic_transfers"
            android:title="@string/transfers" />
        <item
            android:id="@+id/nav_transactions"
            android:icon="@drawable/ic_transactions"
            android:title="@string/transaction_history" />
        <item
            android:id="@+id/nav_remittances"
            android:icon="@drawable/ic_remittances"
            android:title="@string/remittances" />
    </group>
    <group
        android:id="@+id/menu_group_4"
        android:checkableBehavior="single">
        <item
            android:id="@+id/nav_digipass"
            android:icon="@drawable/ic_digipass"
            android:title="@string/nav_menu_digital_pass" />
        <item
            android:id="@+id/nav_rates"
            android:icon="@drawable/ic_exchange"
            android:title="@string/exchange_rates" />
        <item
            android:id="@+id/nav_atms"
            android:icon="@drawable/ic_atms"
            android:title="@string/atms" />
    </group>
    <group
        android:id="@+id/menu_group_5"
        android:checkableBehavior="single">
        <item
            android:id="@+id/nav_notifications"
            android:icon="@drawable/ic_notifications"
            android:title="@string/notifications_menu_item"
            app:actionLayout="@layout/badge_view" />
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings"
            android:title="@string/settings"
            app:actionLayout="@layout/notification_view" />
        <item
            android:id="@+id/nav_questions"
            android:icon="@drawable/ic_questions"
            android:title="@string/frequently_asked_questions" />
        <item
            android:id="@+id/nav_none"
            android:title=""
            android:visible="false" />
    </group>
</menu>

I tried adding custom drawable resource in the styles and applied it to NavigationView but no change at all. I also tried to make custom layout like so: my separator but I do not know how to use it..

any suggestions or references?

  • I solved it by using public abstract class RecyclerView.ItemDecoration because this menu items is displayed using RecyclerView. I think it helps someone with similar question. – Luka Nachkebia Jun 05 '23 at 11:47

0 Answers0