【发布时间】:2011-06-25 02:56:43
【问题描述】:
我有一个固定的高度ListView。它在列表项之间有分隔线,但它也在最后一个列表项之后显示分隔线。
有没有办法在ListView 的最后一项之后不显示分隔符?
【问题讨论】:
我有一个固定的高度ListView。它在列表项之间有分隔线,但它也在最后一个列表项之后显示分隔线。
有没有办法在ListView 的最后一项之后不显示分隔符?
【问题讨论】:
只需添加
android:footerDividersEnabled="false"
到您的 ListView 描述
【讨论】:
layoutHeight="wrap_content" 时,底部分隔线消失了。
正如@ScootrNova 所说,这似乎在 android 4.4.x 中表现不同(又名 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)。似乎也在工作棒棒糖。 (感谢评论者!)
【讨论】:
android:overScrollFooter 对我有用。在 5.0.2 和 5.1 上工作。
android:footerDividersEnabled="false" 来支持向后兼容
如果你想通过代码做到这一点:
listView.setFooterDividersEnabled(false);
如果您使用的是 ListFragment,您可以通过以下方式获取列表视图:
listFragment.getListView().setFooterDividersEnabled(false);
仅评论是因为这在谷歌中排名第一
【讨论】:
似乎下面的行在棒棒糖设备上不起作用。
listView.setFooterDividersEnabled(false);
所以需要使用下面的代码来删除列表中最后一项之后的分隔符。
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));
【讨论】:
使用背景 = @android:color/transparent。完美运行。您仍然可以使用行布局的背景
【讨论】: