在Android中,我想向用户显示一个列表。当选择列表中的项目时,将执行某些操作,并且不再可选择此列表项目。它也是“灰显”或类似的,表示下次显示列表时无法选择它。我在Adapter中看到了isSelectable()覆盖,但我相信这会导致该项被视为分隔符,从而导致视觉问题。我还没有找到一种方法来“灰化”一个项目。有任何想法吗?感谢...
答案 0 :(得分:8)
至于灰色物品。我不确定这是不是最好的方式,但这就是我的工作:
view.setAlpha(75);
view.setBackgroundColor(Color.GRAY);
我基本上是让项目透明,然后将背景颜色设置为灰色。如果您正在重复使用您的清单项目,如果条件不满足,您还应将其更改回原始状态,即:
view.setAlpha(255);
view.setBackgroundColor(Color.WHITE);
即,如果您的原始状态不是透明度且背景颜色为白色。
答案 1 :(得分:2)
您需要禁用该视图。如果要创建视图,只需在顶视图上调用.setDisabled(boolean)。根据我的经验,设置要禁用的列表项不起作用。
答案 2 :(得分:2)
这是我正在使用的解决方案。我为ListView设置了一个OnItemClickListener。单击列表中的项目时,我会使用传入的视图并在其上调用 setEnabled(false)。这会使项目变灰。但是,后续单击此项目仍将调用onItemClick方法。因此,如果项目已启用/禁用,您需要检查每次点击并采取相应措施。