删除Android ListView的底部分隔线

我有一个固定的高度ListView 。 它有列表项之间的分隔,但它也显示最后列表项后的分隔符。

有没有办法在ListView的最后一个项目之后不显示分隔符?

只需将android:footerDividersEnabled="false"到您的ListView描述中即可

正如@ ScootrNova所说,这似乎是在Android 4.4.x(不知道到底什么时候引入问题)的行为不同(即错误)

这与在clipToPadding="false"中使用使用padding + clipToPadding="false"特定情况相关,页脚被绘制在视图之外,但剪辑到填充显示它。

我使用的解决scheme是设置页脚过度滚动( android:overScrollFooter )透明,这种方式工作…

我的最终解决scheme(请注意, android:footerDividersEnabled保持为后向兼容):

 <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" /> 

在运行4.1.1的HTC One X,运行4.4.4的Nexus 5以及运行4.4.2的三星Galaxy S5上进行了testing(感谢@ Dallas187)。 似乎也在工作棒棒糖了。 (感谢评论者!)

如果你想通过代码来做到这一点:

 listView.setFooterDividersEnabled(false); 

如果您使用的是ListFragment,则可以通过以下方式获取列表视图:

 listFragment.getListView().setFooterDividersEnabled(false); 

只有评论,因为这出现在谷歌#1

下面的线似乎不适用于lollypop设备。

 listView.setFooterDividersEnabled(false); 

所以需要使用下面的代码来删除列表中最后一项之后的分隔符。

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