删除android ListView的底部分隔符

时间:2011-02-10 20:00:29

标签: android listview divider

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

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

5 个答案:

答案 0 :(得分:183)

添加 android:footerDividersEnabled="false" 到你的ListView描述

答案 1 :(得分:80)

正如@ScootrNova所说,这似乎在android 4.4.x中表现得不同(a.k.a buggy)(我不确切知道问题何时出现)

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

我使用的解决方案是将页脚过度滚动(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)。似乎也在工作Lollipop。 (感谢评论者!)

答案 2 :(得分:18)

如果您想通过代码执行此操作:

listView.setFooterDividersEnabled(false);

如果你正在使用ListFragment,你可以通过以下方式获取listview:

listFragment.getListView().setFooterDividersEnabled(false);

仅进行了评论,因为它在Google中排名第一

答案 3 :(得分:9)

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

listView.setFooterDividersEnabled(false);

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

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

答案 4 :(得分:0)

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