android - ListView中回收的背景颜色

标签 android listview background

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

@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 上滚动然后返回时,某些行已经从另一行获取了颜色,而没有通过此代码进行设置。我怀疑 ListView 正在回收 View 作为优化。

我该如何解决这个问题?

最佳答案

getView当绘制 ListView 时将一直调用。当我们做一个小的改变时,简单地采取它就会被调用,例如做一个小滚动
如果您想为特定行设置颜色,只需检查 position (getview 的第一个参数)即可。

关于android - ListView中回收的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342954/

相关文章:

android - ListView:为什么第一次没有改变背景?

Android TextView 和 9 补丁布局不正确

CSS 背景 100% 问题

android - 如何以编程方式获取 Youtube 视频 URL

android - 无法从 fragment 中隐藏导航栏

android - 在android中的拨出电话屏幕顶部添加按钮

android - 在项目 'app' 中,已解决的 Google Play 服务库依赖项依赖于另一个确切版本(例如 "[1.3.1 ,2.3]",

用于非焦点选择的 JavaFX ListView 和 TableView CSS

android - 滑动以删除 ListView 显示 Artifact

jquery - CSS 背景固定位置但内容保持白色