J'ai une hauteur fixe ListView
. Il comporte un séparateur entre les éléments de la liste, mais affiche également des séparateurs après le dernier élément de la liste.
Est-il possible de ne pas afficher de séparateur après le dernier élément de ListView
?
Ajoutez simplement Android:footerDividersEnabled="false"
à votre description ListView
Comme @ScootrNova l'a dit, cela semble se comporter différemment (bug.a.k.a) dans Android 4.4.x (je ne sais pas exactement quand le problème est introduit)
Ceci est lié au cas spécifique d'utilisation de padding
+ clipToPadding="false"
- dans 4.4.x, le pied de page est dessiné en dehors de la vue mais les clips le remplaçant le révèlent.
La solution que j'ai utilisée consistait à définir le survol de pied de page (Android:overScrollFooter
) sur transparent, ce qui fonctionne d'une manière ou d'une autre ...
Ma solution finale (notez que Android:footerDividersEnabled
est conservé pour la compatibilité avec les versions antérieures):
<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 travailler aussi Lollipop. (merci aux commentateurs!)
Si vous voulez le faire par code c'est:
listView.setFooterDividersEnabled(false);
et si vous utilisez un ListFragment, vous pouvez obtenir la listview en:
listFragment.getListView().setFooterDividersEnabled(false);
Seulement commenté parce que cela apparaît comme le n ° 1 dans google
Il semble que la ligne ci-dessous ne fonctionne pas sur le périphérique Lollypop.
listView.setFooterDividersEnabled(false);
Vous devez donc utiliser le code ci-dessous pour supprimer le séparateur après le dernier élément de la liste.
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));
Utilisez background = @Android: color/transparent. Marche parfaitement. Vous pouvez toujours utiliser l'arrière-plan de votre mise en ligne