我有一个列表视图,其中我显示文件和文件夹列表。 我用我的getView方法listview项目的滚动背景颜色变化,
static class ViewHolder {
protected TextView text1;
protected TextView text2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView == null){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row, parent, false);
viewHolder = new ViewHolder();
viewHolder.text1 = (TextView) convertView.findViewById(R.id.text1);
viewHolder.text2 = (TextView) convertView.findViewById(R.id.text2);
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.text1.setText(itemsArrayList.get(position).getFileName());
viewHolder.text2.setText(itemsArrayList.get(position).getSize());
<if(itemsArrayList.get(position).isHidden()) {
convertView.setBackgroundColor(context.getResources().getColor(R.color.hiddenColor));
}
return convertView;
}
如果文件/文件夹是隐藏的,我改变列表项的hiddenColor的背景颜色,
(默认的背景色是XML)
但在滚动它将几乎所有的列表项目背景颜色设置为隐藏颜色。
我知道这是由于listview回收,但不知道如何解决它。
检查这个参考http://stackoverflow.com/questions/20611123/listview-subobject-clickable-confilct。点击时更改文字和颜色。 – Raghunandan