2016-06-24 9 views
0

カスタムListViewがあり、表示すると最初の3要素が表示され、スクロール時に繰り返されます。他のすべての要素は決して表示されません。カスタムListViewの最初の3つの要素が繰り返し表示され、スクロール時に位置が変更されます

私はsetTaggetTagで試しましたが、うまくいきません。私が見つけた唯一の方法は、要素をスクロールするたびにビューを再構築することです(if (row = null)を無効にする)が、それは良いことだとは思わない。

これは(setTaggetTagと)私の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; 
} 

答えて

0

あなたがイメージとテキストビューを設定しているconvertView == nullelseの部分は、ビューがリサイクルされ、膨らませる必要がないことを意味します。あなたはになりますが、には、画像とテキストの設定もすべて行なわなければなりません。ですから、イメージ/テキスト設定コードをifブロックから取り出し、if/elseブロックの後に移動して、どちらの場合でも実行されるようにしてください。

+0

"elseパーツは、ビューがリサイクルされ、膨らませる必要がないことを意味します"。ありがとう、私は間違いを理解している、それはうまくいく:) – Tattoum

関連する問題