Skip to content Skip to sidebar Skip to footer

How To Overcome This Item Padding In Navigation Drawer?

I check out all the question and also google a lot I just want to remove this padding between each item in navigation view. Help me to sort out this problem thanks in advance. This

Solution 1:

According to source code of NavigationView found here, it led me to NavigationMenuPresenter (found here) which says, every normal type in menu list inflates R.layout.design_navigation_item. So if you preview it (here) you will notice what preference it uses.

<android.support.design.internal.NavigationMenuItemView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="?attr/listPreferredItemHeightSmall"
        android:paddingLeft="?attr/listPreferredItemPaddingLeft"
        android:paddingRight="?attr/listPreferredItemPaddingRight"
        android:foreground="?attr/selectableItemBackground"
android:focusable="true"/>

So, the final step is to override the style attribute, i.e. layout_height which references to "?attr/listPreferredItemHeightSmall" (default 48dp).

Open your styles.xml and override it by i.e using custom value:

<!-- Base application theme. --><stylename="AppTheme"parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. --><itemname="colorPrimary">@color/colorPrimary</item><itemname="colorPrimaryDark">@color/colorPrimaryDark</item><itemname="colorAccent">@color/colorAccent</item><!-- HERE--><itemname="listPreferredItemHeightSmall">18dp</item></style>

Original:

enter image description here

Custom:

enter image description here

Solution 2:

Add this line to your dimens.xml file and customize this DP as per your need i have solved my problem by this lines.

<dimenname="design_navigation_padding_top_default"tools:override="true">5dp</dimen><dimenname="design_navigation_separator_vertical_padding"tools:override="true">0dp</dimen><dimenname="design_navigation_padding_bottom"tools:override="true">5dp</dimen><dimenname="design_navigation_icon_size"tools:override="true">20dp</dimen><dimenname="design_navigation_icon_padding"tools:override="true">12dp</dimen>

Solution 3:

Yes just add this parameter in your dimens.xml file

<dimenname="design_navigation_separator_vertical_padding"tools:override="true">0dp</dimen>

other possible values you can change are here https://github.com/android/platform_frameworks_support/blob/master/design/res/values/dimens.xml

OR if you want to customize fully then you just need to add your own list view inside navigation drawer like this..

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"tools:openDrawer="start"><includelayout="@layout/app_bar_dashboard"android:layout_width="match_parent"android:layout_height="match_parent" /><android.support.design.widget.NavigationViewandroid:id="@+id/nav_view"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="start"android:fitsSystemWindows="true"
        ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><includelayout="@layout/nav_header_dashboard"android:id="@+id/header"/><ListViewandroid:id="@+id/lst_menu_items"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:background="@color/white"android:divider="@color/navigation_divider"android:dividerHeight="1dp"android:layout_marginTop="@dimen/padding10"/></LinearLayout></android.support.design.widget.NavigationView></android.support.v4.widget.DrawerLayout>

then provide your own custom padding to listview row

Solution 4:

You can put all your item in one group then you don't need to remove the padding

<groupandroid:checkableBehavior="single"><itemandroid:id="@+id/nav_camera"android:icon="@drawable/ic_menu_camera"android:title="Home" /><itemandroid:id="@+id/nav_gallery"android:icon="@drawable/ic_menu_gallery"android:title="Camera" /><item......></group>

enter image description here

Post a Comment for "How To Overcome This Item Padding In Navigation Drawer?"