Reputation: 4487
I am wondering how do we change the spacing between the icon and the text?
Is it doable?
Any thoughts?
Thank you
Upvotes: 17
Views: 8622
Reputation: 1387
Here is the solution -
app:itemIconPadding="15dp"
Example:
<com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="false" app:itemIconPadding="15dp" app:itemIconSize="28dp" app:headerLayout="@layout/nav_header_main2" app:itemIconTint="@color/navigation_item_text_color" app:menu="@menu/activity_main_drawer" app:itemTextAppearance="@style/NavigationDrawerStyle" app:itemBackground="@color/white" />
Upvotes: 0
Reputation: 41
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.
Upvotes: 3
Reputation: 181
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">
Upvotes: 16
Reputation: 3250
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>
Upvotes: 19
Reputation: 129
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.
Upvotes: 1