2
以下問題:我使用自定義ArrayAdapter並在顯示項目列表時實施ViewHolder模式。我也使用convertViews。 加載一切都很好,列表項目顯示正確,交替的顏色。當我滾動快速上下,顏色變化,並不交替了... 例如當加載:綠色,藍色,綠色,藍色... 後滾動:綠色,藍色,綠色,綠色,環保,綠色....ListView備用行顏色在向上滾動和向下滾動時錯誤
下面是一些代碼:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder holder;
StoreTemplate curr = templates.get(position);
if (convertView == null) {
convertView = inflater.inflate(R.layout.template_store_rowlayout,
parent, false);
holder = new ViewHolder();
holder.name = (TextView) convertView
.findViewById(R.id.name);
// more attr skipped here...
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.name.setText(curr.getName());
// more attr set here...
// this changes background
if ((position % 2) == 0) {
convertView.setBackgroundColor(context.getResources().getColor(
R.color.background_green));
}
// code skipped here
return convertView;
}
我怎麼能保證,該行始終altenately着色,即使我滾動,或搜索並重新加載列表?
我會把一個** else **分支給你的**甚至**行的顏色** ** **。 – 2014-09-01 19:02:46