2011-02-10 47 views
90

我有一个固定的高度ListView。它在列表项之间进行分隔,但它也在最后一个列表项之后显示分隔符。删除Android ListView的底部分隔线

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

回答

179

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

+27

这似乎不再适用于从4.4.2开始。我可以在我的许多测试设备(从2.3.7一直到4.4.2)范围内运行相同的应用程序,而KitKat是唯一的,这似乎没有效果......任何想法?我没有添加页脚或页眉到我的ListView,我已经在两个设备(Nexus 5和HTC One M8)上再现了这一点。 – 2014-04-11 17:53:23

+0

刚刚找到了解决方案。看到我的答案... – Sam 2014-06-24 18:56:47

+10

@ScootrNova我正在使用4.4.4,当我设置listview的`layoutHeight =“wrap_content”`,底部分隔线消失。 – Erhannis 2014-07-10 22:33:19

19

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

listView.setFooterDividersEnabled(false); 

,如果您使用的是ListFragment你可以得到列表视图:

listFragment.getListView().setFooterDividersEnabled(false); 

只发表评论,因为它出现在谷歌#1中

76

正如@ScootrNova说,这似乎是从Android 4.4.x不同(又名越野车),行为(我不知道什么时候问题引入)

这是关系到具体案件使用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)。似乎也在工作棒棒糖。 (感谢评论者!)

8

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

listView.setFooterDividersEnabled(false); 

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

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

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