Change Navigation Drawer Icon and Text Spacing

If you change in your dimens.xml file you'll change on all of your project. I suggest you to change locally, just in NavigationView, like Vadym purpouse. Or you can change there like that:

<com.google.android.material.navigation.NavigationView
    app:itemIconPadding="4dp"
    ../>

This worked perfectly to me, and you can just change the value of the padding to everthing that you want.


I added one line to xml: app:itemIconPadding="@dimen/space24" and it`s worked

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@android:color/white"
    android:clipToPadding="false"
    android:paddingBottom="@dimen/space48"
    app:headerLayout="@layout/layout_nav_header"
    app:insetForeground="@color/black"
    **app:itemIconPadding="@dimen/space24"**
    app:itemBackground="@drawable/background_selected_menu"
    app:itemHorizontalPadding="@dimen/horizontal_padding_on_nav_drawer"
    app:menu="@menu/drawer">

You will need another layout which you will inflate. In the layout, you can set the margin to what you want. Inflater allows you to adapt a layout to a view. check this out http://developer.android.com/reference/android/view/LayoutInflater.html or this http://khajanpndey.blogspot.com.ng/2012/12/android-layoutinflater-tutorial.html

Whichever view you are using, checkout how you can inflate the view. Hope this help.


Add the following line to app\src\main\res\values\dimens.xml file. No need to add new layout.

<dimen tools:override="true" name="design_navigation_icon_padding">5dp</dimen>