我使用带有自定义适配器和自定义项目布局的ListView,其中每个项目都有一个带开关的说明。
根据项目的不同,我在getView()
中为每个代码提供了不同的拇指选择器 - 抽屉。
swtch.setThumbDrawable(getContext().getResources()
.getDrawable(R.drawable.green_switch)); // or red_switch
这很好,但是: 当我滚动ListView时,自定义图像消失了,直到我再次触摸开关,然后它的自定义图像立即返回。
当状态列表首先包含“禁用”状态的元素时,开关将具有此图像而不是它应该的图像。
我认为这是一个错误或者我不正确地使用了ListAdapter。
对我来说,解决方法是在布局中包含不同样式的开关,并根据我拥有的项目类型显示其中一个,并隐藏其他类型。
这是唯一的可能吗?
答案 0 :(得分:0)
听起来您有查看回收的问题。您必须每次都在getView中设置所有字段。 请阅读How ListView's recycling mechanism works。使用ListView时,了解视图回收非常重要。