Réponses:
Ajoutez simplement
android:footerDividersEnabled="false"
à votre description ListView
layoutHeight="wrap_content"
, le séparateur du bas disparaît.
Comme l'a dit @ScootrNova, cela semble se comporter différemment (alias buggy) sous Android 4.4.x (je ne sais pas exactement quand le problème est introduit)
Ceci est lié au cas spécifique de l'utilisation de padding
+ clipToPadding="false"
- dans 4.4.x, le pied de page est dessiné en dehors de la vue mais les clips au remplissage le révèlent.
La solution que j'ai utilisée était de définir le sur-défilement du pied de page ( android:overScrollFooter
) sur transparent, ce qui fonctionne en quelque sorte ...
Ma solution finale (note qui android:footerDividersEnabled
est conservée pour la rétro-compatibilité):
<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"
/>
testé sur un HTC One X sous 4.1.1, un Nexus 5 sous 4.4.4 et un Samsung Galaxy S5 sous 4.4.2 (grâce à @ Dallas187). Semble fonctionner aussi Lollipop. (merci aux commentateurs!)
android:overScrollFooter
fait l'affaire pour moi. Travailler sur un 5.0.2 et 5.1.
android:footerDividersEnabled="false"
d'un arrière compat
Si vous voulez faire cela par code, c'est:
listView.setFooterDividersEnabled(false);
et si vous utilisez un ListFragment, vous pouvez obtenir la vue de la liste par:
listFragment.getListView().setFooterDividersEnabled(false);
Uniquement commenté, car cela apparaît comme n ° 1 dans Google
Il semble que la ligne ci-dessous ne fonctionne pas sur les appareils lollypop.
listView.setFooterDividersEnabled(false);
Vous devez donc utiliser ce code ci-dessous pour supprimer le séparateur après le dernier élément de la liste.
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));