Remove the bottom divider of an android ListView

AndroidListviewDivider

Android Problem Overview


I have a fixed height ListView. It has divider between list items, but it also displays dividers after the last list item.

Is there a way to not display a divider after the last item in ListView?

Android Solutions


Solution 1 - Android

Just add android:footerDividersEnabled="false" to your ListView description

Solution 2 - Android

As @ScootrNova said, this seems to be behaving differently (a.k.a buggy) in android 4.4.x (I don't know exactly when the problem is introduced)

This is related to the specific case of using using padding + clipToPadding="false" - in 4.4.x the footer is drawn outside of the view but clips to padding reveals it.

The solution I used was to set the footer over-scroll (android:overScrollFooter) to transparent which somehow works...

My final solution (note that android:footerDividersEnabled is kept for back-compatibility):

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/activity_horizontal_margin"
    android:divider="@color/divider"
    android:dividerHeight="1px"
    android:clipToPadding="false"
    android:scrollbarStyle="outsideInset"
    android:overScrollFooter="@android:color/transparent"
    android:footerDividersEnabled="false"
    />

tested on a HTC One X running 4.1.1, a Nexus 5 running 4.4.4 and a Samsung Galaxy S5 running 4.4.2 (thanks to @Dallas187). Seems to be working Lollipop too. (thanks to commenters!)

Solution 3 - Android

If you want to do this by code it's:

listView.setFooterDividersEnabled(false);

and if you're using a ListFragment you can get the listview by:

listFragment.getListView().setFooterDividersEnabled(false);

Only commented because this comes up as #1 in google

Solution 4 - Android

It seems below line does not work on lollypop device.

listView.setFooterDividersEnabled(false);

So need to use this below code to remove divider after last item in the list.

listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));

Solution 5 - Android

Use background = @android:color/transparent. Works perfectly. You can still use the background of your row layout

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmksoView Question on Stackoverflow
Solution 1 - AndroidAlex.SemeniukView Answer on Stackoverflow
Solution 2 - AndroidSamView Answer on Stackoverflow
Solution 3 - AndroidtmhoView Answer on Stackoverflow
Solution 4 - AndroidAnnadaView Answer on Stackoverflow
Solution 5 - AndroidstefView Answer on Stackoverflow