删除Android ListView的底部分隔线
问题描述:
我有一个固定的高度ListView
。它在列表项之间进行分隔,但它也在最后一个列表项之后显示分隔符。删除Android ListView的底部分隔线
有没有办法在ListView
的最后一项之后不显示分隔符?
答
只需添加 android:footerDividersEnabled="false"
您的ListView描述
答
如果你想通过代码来做到这一点是:
listView.setFooterDividersEnabled(false);
,如果您使用的是ListFragment你可以得到列表视图:
listFragment.getListView().setFooterDividersEnabled(false);
只发表评论,因为它出现在谷歌#1中
答
正如@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)。似乎也在工作棒棒糖。 (感谢评论者!)
答
下面的线似乎不适用于lollypop设备。
listView.setFooterDividersEnabled(false);
所以需要使用下面的代码来删除列表中最后一项之后的分隔符。
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));
答
使用background = @android:color/transparent。完美的作品。你仍然可以使用你的行布局的背景
这似乎不再适用于从4.4.2开始。我可以在我的许多测试设备(从2.3.7一直到4.4.2)范围内运行相同的应用程序,而KitKat是唯一的,这似乎没有效果......任何想法?我没有添加页脚或页眉到我的ListView,我已经在两个设备(Nexus 5和HTC One M8)上再现了这一点。 – 2014-04-11 17:53:23
刚刚找到了解决方案。看到我的答案... – Sam 2014-06-24 18:56:47
@ScootrNova我正在使用4.4.4,当我设置listview的`layoutHeight =“wrap_content”`,底部分隔线消失。 – Erhannis 2014-07-10 22:33:19