【发布时间】:2012-02-08 23:22:16
【问题描述】:
我在滚动时遇到以下问题。
在我的应用程序中,我有一个需要多选的列表视图。这也是一个自定义列表,其中选择需要通过更改列表项颜色而不是基于复选框的方法来表示。 为此:在 OnClick 中,我正在检查是否选择了该位置,然后设置该项目的背景。但是,当我滚动列表时,这有问题。举个例子: 假设列表有 50 个项目。一次可见 10 个。我选择说第 5 项 [从而改变背景]。然后我滚动列表。滚动对应于较早第 5 项的列表的可见部分后,例如列表项中的第 15 项但可见部分中的第 5 个索引,仍然具有与选定状态相对应的背景。而它不应该被设置,因为我还没有选择第 15 项。
我试过了: a-在适配器的 getView 方法中,如果该项目不是选定项目之一,我将设置一个背景,否则不同。试过 - setBackgroundColor 以及 setBackgrounddrawable。 b- 在 xml 中已将 cacheColorHint 设置为透明 c- 将选择器附加到项目和响应 onlcick 中状态 [pressed,selected] 的项目。
但是我仍然无法摆脱滚动项目不需要的背景颜色。
任何帮助。我尝试了 SO 中各种帖子中提到的各种建议,但尚未成功。
我试过了
谢谢 普雷迪普
【问题讨论】:
-
你在重复使用你的 convertView 吗?听起来背景已经设置好了,并且在重复使用时您不会重置它。
-
同意@Blundell,您应该发布您的适配器代码。