2009-12-09 89 views
33

如果我有一个ListView有两种不同类型的项目,启用和禁用项目(意思是可选和不可选),Android会在启用的项目之间正确绘制一个小分隔线,但不是禁用物品之间。相反,它绘制了一个透明的分隔线,这导致了非常糟糕的设计问题。这已被讨论here(Google网上论坛),但没有任何解决方案。Android:ListView未启用的项目绘制不可见的分隔线

我正在寻找的是强制Android绘制相同的分隔线,使用enabled项目之间的disabled项目之间使用,而不是只留下一个透明的空间。

+0

我也遇到过这个问题,它让我伤心,那应该是预期的行为。我能想到的唯一解决方案是通过创建自己的适配器来自行绘制分隔线,并在适当的位置自动添加适配器。 – 2009-12-09 17:16:26

+0

我一直在寻找一段时间,并没有找到合适的解决方案。我会尽快更新这篇文章。现在我也使用自定义适配器作为解决方法。 – znq 2009-12-14 14:28:27

+0

我刚刚在我的应用程序中遇到同样的问题。一个不可选择的headerView不会显示divider(使用这个方法添加的头文件!addHeaderView(View v,Object data,boolean isSelectable)。我会直接将它放在我的头文件中... – 2011-11-08 14:26:28

回答

0

是不是很酷!我遇到了同样的问题。解决这个问题的方法是在你的xml文件中添加一个View类型的行,并将你的divider设置为0 height,如下所示:android:dividerHeight =“0dp”注意:这是列表视图本身。

1

如果您有页眉和/或页脚:http://java.dzone.com/articles/android-listview-%E2%80%93-fixing是正确的答案。真的很好解释。

+0

他的方法有点类似,但有些问题。如果'areAllItemsEnabled()'返回true,你可以把任何项目成为关注的焦点,并点击它,包括它'isEnabled'将返回false项目。尝试使用箭头键在仿真器+输入。 – 2015-05-11 20:28:12

+0

如果禁用/点击虚假内容本身它不应该点击进入列表listview的isEnabled特性不能以适当的方式使用imho,因为像这样的许多bug /不兼容 – Denny1989 2015-05-22 09:01:46