安卓:ListView中未启用的项目绘制不可见的分隔线

33
如果我有一个包含两种不同类型的项目(可选和不可选)的ListView,在可选的项目之间,Android会正确地绘制一个小的分隔符,但是在不可选的项目之间却不会。而是绘制一个透明的分隔符,这导致了设计问题。已经在这里讨论过这个问题,但没有任何解决方案。
我正在寻找的是一种方法,可以强制Android在不可选项目之间使用与在可选项目之间使用的相同分隔符,而不是留下一个透明空间。

我也遇到了这个问题,让我感到难过的是这似乎是预期行为。我能想到的唯一解决方案就是通过创建自己的适配器来手动绘制分隔符并在适当的位置添加它们。 - Dan Lew
我已经寻找了一段时间,但还没有找到合适的解决方案。如果我找到了,我会尽快更新这篇文章。目前,我也使用自定义适配器作为解决方法。 - znq
我在我的应用程序中遇到了同样的问题。 一个不可选择的headerView不显示分隔符(使用此方法添加的header!addHeaderView(View v,Object data,boolean isSelectable))。 我将直接将其放入我的标题中... - ol_v_er
2个回答

1

他的方法有点可行,但存在些许问题。如果 areAllItemsEnabled() 返回 true,则您可以将任何项目聚焦并单击它,包括 isEnabled 返回 false 的项目。尝试在模拟器中使用箭头键 + 回车键。 - Daniel Lubarov
如果您禁用/ clickable false 内容本身,则不应单击列表。在我看来,listview 的 isEnabled 功能无法以适当的方式使用,因为存在许多错误/不兼容性,例如此问题。 - Denny1989

0

是的,这一点确实不酷!我也遇到了同样的问题。解决方法是在您的 xml 文件中添加一个 View 类型行,并将您的分隔线设置为 0 高度,如下所示:android:dividerHeight="0dp" 注意:这是针对列表视图本身的。


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