Android Switch Widget:滚动时丢失自定义拇指图像

时间:2014-08-04 07:05:20

标签: android listview android-listview adapter

我使用带有自定义适配器和自定义项目布局的ListView,其中每个项目都有一个带开关的说明。 根据项目的不同,我在getView()中为每个代码提供了不同的拇指选择器 - 抽屉。

   swtch.setThumbDrawable(getContext().getResources()
        .getDrawable(R.drawable.green_switch)); // or red_switch

这很好,但是: 当我滚动ListView时,自定义图像消失了,直到我再次触摸开关,然后它的自定义图像立即返回。

当状态列表首先包含“禁用”状态的元素时,开关将具有此图像而不是它应该的图像。

我认为这是一个错误或者我不正确地使用了ListAdapter。

对我来说,解决方法是在布局中包含不同样式的开关,并根据我拥有的项目类型显示其中一个,并隐藏其他类型。

这是唯一的可能吗?

1 个答案:

答案 0 :(得分:0)

听起来您有查看回收的问题。您必须每次都在getView中设置所有字段。 请阅读How ListView's recycling mechanism works。使用ListView时,了解视图回收非常重要。