0
カスタムListViewがあり、表示すると最初の3要素が表示され、スクロール時に繰り返されます。他のすべての要素は決して表示されません。カスタムListViewの最初の3つの要素が繰り返し表示され、スクロール時に位置が変更されます
私はsetTag
とgetTag
で試しましたが、うまくいきません。私が見つけた唯一の方法は、要素をスクロールするたびにビューを再構築することです(if (row = null)
を無効にする)が、それは良いことだとは思わない。
これは(setTag
とgetTag
と)私のgetViewメソッドのMethodeのである:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
Meal meal = getItem(position);
if (row == null) {
holder = new ViewHolder();
row = LayoutInflater.from(getContext()).inflate(R.layout.custom_list, parent, false);
holder.txtTitle = (TextView) row.findViewById(R.id.nameMeal);
holder.img = (ImageView) row.findViewById(R.id.imageMeals);
holder.price = (TextView) row.findViewById(R.id.textView14);
holder.imgQuantity = (RelativeLayout) row.findViewById(R.id.hide);
holder.soldOut = (ImageView) row.findViewById(R.id.sold_out);
holder.descMenu = (TextView) row.findViewById(R.id.textView);
holder.plus = (Button) row.findViewById(R.id.plus);
holder.minus = (Button) row.findViewById(R.id.minus);
if (User.getInstance().imgBitMap.get(meal.nameFr) == null)
new LoadImageFromURL(holder.img, meal).execute(meal.imageRealUrl);
else
holder.img.setImageBitmap(User.getInstance().imgBitMap.get(meal.nameFr));
holder.txtTitle.setText(meal.nameFr);
holder.price.setText(meal.price + "0 €");
setButton(row, meal);
setImage(row, meal);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
holder.img.setTag(position);
holder.plus.setTag(position);
holder.minus.setTag(position);
holder.txtTitle.setTag(position);
holder.price.setTag(position);
return row;
}
"elseパーツは、ビューがリサイクルされ、膨らませる必要がないことを意味します"。ありがとう、私は間違いを理解している、それはうまくいく:) – Tattoum