12

I am wondering how do we change the spacing between the icon and the text?

Is it doable?

Any thoughts?

Thank you

enter image description here

JayVDiyk
  • 6,250
  • 20
  • 61
  • 113
  • Possible duplicate of [Android padding left for a text in a TextView wich contains an image on left and text on right](http://stackoverflow.com/questions/12433676/android-padding-left-for-a-text-in-a-textview-wich-contains-an-image-on-left-and) or [Set actual text padding in TextView with compound drawables](http://stackoverflow.com/questions/12455514) or [Android: Textview drawable how to change padding between drawable and text?](http://stackoverflow.com/questions/19362762/android-textview-drawable-how-to-change-padding-between-drawable-and-text). There are too many such questions. – Sufian Feb 14 '16 at 14:03

4 Answers4

19

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>
computingfreak
  • 3,990
  • 1
  • 32
  • 43
Asad Rao
  • 2,928
  • 1
  • 19
  • 23
12

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">
Saeed
  • 2,594
  • 2
  • 21
  • 36
1

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.

Aliyu Abdullahi
  • 131
  • 1
  • 4
0

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.