listview标题和第一个项目之间的空白空间

Nil*_*s11 34 android header footer divider android-listview

我用ListView创建了一个android应用程序.我已经在页面中添加了页眉和页脚.但是在添加分隔符/分隔符时,它还会在标题和第一个ListView项之间创建一个空格.它对最后一个ListView项和页脚也是如此.

空白空间等于所有ListView项之间的分隔符的大小,区别在于它不绘制分隔符并且只留下空白空间.我以为我找到了xml属性'Footer dividers enabled'和'Header dividers enabled'的解决方案.但是当它们设置为false时,它不会改变任何东西.我甚至尝试用编程方式设置它们

list.setFooterDividerEnabled(false);
list.setHeaderDividerEnabled(false);
Run Code Online (Sandbox Code Playgroud)

但它只是不起作用.有什么方法可以解决这个问题?我只是不希望空的空间在那里,我希望第一项完全适合标题(页脚相同).

Giu*_*lli 5

我偶然发现了同样的问题,但情况与你的情况略有不同.我ListView有一个标题(搜索框),但它下面的第一项包含一个标题(日期或字母),而不是一个常规列表项(实际内容是图像形式,一些文本,和等等).因此,我希望它不可选择,所以在我的自定义适配器中,我已覆盖areAllItemsEnabled返回false.

大错,因为那正是罪魁祸首.看来,根据设计,ListView实现似乎只在两个启用的项目之间绘制分隔符,但仍然为已启用项目和已禁用项目之间的分隔符保留空间,即使这些分隔符不会被绘制.事实上,这是一个有意识的设计决定并不意味着它不是愚蠢的.最奇怪的是,此分隔符绘制策略仅基于返回的值,areAllItemsEnabled而不是单个调用返回的isEnabled后续项的值.

因此,要解决它,我不得不返回trueareAllItemsEnabled(我不停的重写的方法和添加有关此问题的评论,否则我将无法在一个月记住它从现在开始):你瞧,白色空间消失,被分隔符取代.现在,如果我想显示ListView标题和第一个标题标题完全相邻,我只需要选择与标题标题颜色相同的分隔颜色.

真的希望和你的情况一样,或者我的解决方案以其他方式帮助你.


Chr*_*rry -3

做就是了

list.setDividerHeight(0)

那应该解决它。