`

ListView底部分隔线的问题

阅读更多
在工作中遇到了一个难题,就是一个listView在最下面的一个item下面没有分割线,要求是必须得有这条分割线。经过一通研究发现了这个奇怪的现象:

      1. ListActivity有这条底部分割线。
      2.在Activity中只有listview,没有别的控件的话也会有。

      其实ListActivity也是一个Activity,只不过在其中使用了SetContentView(listView)方法设置了一个listView作为其显示的View而已。所以结论就是只要这个activity调用了SetContentView(listView)就会有这条底部分割线。

      那么什么情况下才不会有这条分割线呢?在Activity中如果调用setContentView(View)而ListView只是内嵌入到这个View的话有可能会没有这条分割线。

      分析其原因:通过加断点调试发现在listView中,所有的分割线都是通过画一个很窄的矩形来实现的,但是在画分割线前都会都会判断目前的位置A和listView的长度B,如果A=B了,那么就不会画这条分割线了。但是将Listview嵌入到一个View中,一般会设置为高度为wrap_content,这种情况下,最后那条分割线的位置刚好等于listView的高度,所以系统不会画上这条分割线。那要怎么样才会画上呢?很简单,将ListView的高度设置为fill_partent就可以了。

     当然以上所说的都是item很少的情况下,如果item很多以至于必须显示滚动条的话,那最后一个item下面是肯定不会有分割线了。

转自:http://blog.chinaunix.net/space.php?uid=20771867&do=blog&id=2915442
分享到:
评论
3 楼 zhangzhikaixinya 2012-09-26  
分析的很好,但是如果背景透明,每一个item(除最后一个)都会在下方显示分割线,我要想删除这个分割线,有招吗?
2 楼 ideathink 2012-09-12  
果然是这样
1 楼 sjp524617477 2012-08-01  
原来如此

相关推荐

Global site tag (gtag.js) - Google Analytics