99

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

有没有办法在最后一项之后不显示分隔线ListView

4

5 回答 5

184

只需添加 android:footerDividersEnabled="false" 到您的 ListView 描述

于 2011-02-25T14:35:36.993 回答
87

正如@ScootrNova 所说,这似乎在 android 4.4.x 中表现不同(又名错误)(我不确切知道何时引入问题)

这与在 4.4.x中使用+ - 的特定情况有关,页脚被绘制在视图之外,但剪辑到填充显示它。paddingclipToPadding="false"

我使用的解决方案是将页脚过度滚动(android:overScrollFooter)设置为透明,这在某种程度上可以工作......

我的最终解决方案(注意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 上进行了测试(感谢 @Dallas187)。似乎也在工作棒棒糖。(感谢评论者!)

于 2014-06-24T18:56:34.987 回答
18

如果你想通过代码做到这一点,它是:

listView.setFooterDividersEnabled(false);

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

listFragment.getListView().setFooterDividersEnabled(false);

只发表评论,因为这在谷歌中排名第一

于 2012-10-09T23:40:54.963 回答
14

似乎下面的行在棒棒糖设备上不起作用。

listView.setFooterDividersEnabled(false);

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

listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));
于 2016-07-28T20:59:40.477 回答
0

使用背景 = @android:color/transparent。完美运行。您仍然可以使用行布局的背景

于 2018-02-23T12:10:41.417 回答