删除Android ListView的底部分隔线
我有一个固定的高度ListView
。 它有列表项之间的分隔,但它也显示最后列表项后的分隔符。
有没有办法在ListView
的最后一个项目之后不显示分隔符?
只需将android:footerDividersEnabled="false"
到您的ListView描述中即可
正如@ ScootrNova所说,这似乎是在Android 4.4.x(不知道到底什么时候引入问题)的行为不同(即错误)
这与在clipToPadding="false"
中使用使用padding
+ clipToPadding="false"
的特定情况相关,页脚被绘制在视图之外,但剪辑到填充显示它。
我使用的解决scheme是设置页脚过度滚动( android:overScrollFooter
)透明,这种方式工作…
我的最终解决scheme(请注意, 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上进行了testing(感谢@ Dallas187)。 似乎也在工作棒棒糖了。 (感谢评论者!)
如果你想通过代码来做到这一点:
listView.setFooterDividersEnabled(false);
如果您使用的是ListFragment,则可以通过以下方式获取列表视图:
listFragment.getListView().setFooterDividersEnabled(false);
只有评论,因为这出现在谷歌#1
下面的线似乎不适用于lollypop设备。
listView.setFooterDividersEnabled(false);
所以需要使用下面的代码来删除列表中最后一项之后的分隔符。
listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));