我是一名有用的助手,可以为您翻译文本。
我有一个ListView,在其中显示文件和文件夹列表。 我的getView方法如下:
如果文件/文件夹是隐藏的,我将列表项的背景色更改为hiddenColor(默认背景色在XML中)。
但是,在滚动时,它会将几乎所有列表项的背景颜色设置为hiddencolor。
我知道这是由于listview回收造成的,但不知道如何解决它。
我有一个ListView,在其中显示文件和文件夹列表。 我的getView方法如下:
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中)。
但是,在滚动时,它会将几乎所有列表项的背景颜色设置为hiddencolor。
我知道这是由于listview回收造成的,但不知道如何解决它。