私はListViewを動的に追加された画像で持っています。ユーザーがリストをスクロールすると、行が重複し、間違ったアイテムが表示され、LayoutParamsの設定が失われます。 この問題を解決するにはどうすればよいですか?ここでListViewリサイクル(スクロールで複製)を処理する
は私のgetViewメソッドのコードは次のとおりです。
public View getView(int position, View view, ViewGroup parent) {
View rowView = view;
ViewHolder viewHolder = new ViewHolder();
if (rowView == null) {
LayoutInflater inflater = ctx.getLayoutInflater();
rowView = inflater.inflate(R.layout.list_row, null, true);
viewHolder.linearLayout = (LinearLayout) rowView.findViewById(R.id.ll_row);
viewHolder.textView = (TextView) rowView.findViewById(R.id.textview_row);
rowView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)rowView.getTag();
}
imageResourseId = new ArrayList<>(Arrays.asList(convertStringToArray(imageNames.get(position))));
for (int i = 0; i < imageResourseId.size(); i++) {
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
0,
ViewGroup.LayoutParams.WRAP_CONTENT, 0.14f);
ImageView imageView = new ImageView(ctx);
//imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setLayoutParams(param);
imageView.setImageResource(ctx.getResources().getIdentifier(imageResourseId.get(i), "drawable", ctx.getPackageName()));
viewHolder.linearLayout.addView(imageView);
}
viewHolder.linearLayout.setTag("images");
viewHolder.textView.setText(textArray.get(position));
return rowView;
}
show imageResourseIdをどのようにしたいですか? –
ArrayList(画像名は – Kvazios
) 'rowView!= null'の場合、新しい' ViewHolder'を作成する必要はありません。 – manfcas