ListView中回收的背景颜色

时间:2010-12-03 06:12:31

标签: android listview background

我有一个奇怪的问题。我正在设置列表视图的项目的背景颜色,如下所示:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;

    ...

    if (status == true) {
        row.setBackgroundColor(Color.argb(255,0,85,187));
    }
    else {
        if (morestuff) {
            row.setBackgroundColor(Color.argb(128,255,0,0));
        }
    }

    ...
}

这似乎有效。但是,当我在列表视图上滚动,然后返回时,某些行已从另一行获取颜色而未由此代码设置。我怀疑listview是将视图作为优化进行回收。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

列表视图肯定是将视图作为优化进行回收。您应该查看有效的列表视图示例。

答案 1 :(得分:1)

绘制列表视图时,将始终调用getView。当我们做一个小改动的例子做一个小卷轴时,就会调用它 如果要将颜色设置为特定行,只需选中position(getview的第一个参数)即可。