如何动态更改ListView的分割线高度?

4

我有一个列表视图,其中不同的行之间应该有不同的分隔线高度。那么,我们如何动态设置分隔线高度呢?

假设我有10行,第1行和第2行之间应该有5个像素的分隔线高度,然后下一组5行之间应该有1个像素的分隔线高度,以此类推。

有人能告诉我如何实现吗?

1个回答

2

一种方法是将分隔符设置为行。在您的isEnabled适配器方法中将它们设置为不可用。我对于部分标题也是这样做的,但几乎是相同的事情。另一种方法是通过实现onLayout手动布局整个列表。如果分隔符可以是空白区域,则设置行的根视图的顶部或底部边距可能有效。在xml中,可以这样写:

    android:layout_marginTop='5px'

否则,将分隔符作为行的一部分。

我不明白如何将分隔符包含在行的一部分中。我有一张行的背景图片。如果我将分隔符作为行的一部分包含进去,那么它就会被包含在那个图片里面。我想将那个图片放在行的下面,应该怎么做? - sunil
每一行都可以是一个ViewGroup,其中包含任意数量的子视图。其中一个子视图可以是分隔符图像。这意味着为不同大小的分隔符使用不同类型的行。 - drawnonward
你能给我一些例子展示如何做吗?你是真的意思要在行xml文件中放置分隔符还是有不同的xml文件用于分隔符。请告诉我。 - sunil
我采用了创建不同的带有分隔符和不带分隔符的xml文件的建议,然后在适配器的getView中根据位置膨胀所需的视图。效果很好。 - Adam Johns
然而,当使用不同高度的布局时,请注意ListView的高度将由第一行确定。例如,如果您第一个充气的行不如其他行那么高,则整个ListView的高度将无法容纳所有行。我仍然不确定如何解决这个问题。 - Adam Johns
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接