我有一个奇怪的问题。我正在设置 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/