У меня есть GridView, в котором изображения загружаются с сервера, я использовал ленивую методологию загрузки для асинхронного добавления изображений в сетку.
Я вижу, что метод getView вызывается многократно и непоследовательно для позиций вида сетки.пока изображения не загружаются для позиции.
Теперь, когда я прокручиваю сетку, изображения, которые уже загружены для позиции, теперь заменяются другими изображениями.
Но после того, как все изображения загружены для позиции, все работает нормально.
Я знаю и прочитал предыдущий пост о несогласованном вызове getView, но все еще не могу решить проблему.
`@ Переопределить общедоступный вид getView (конечная позиция int, вид convertView, конечный ViewGroup viewGroup){ViewHolder viewHolder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.ondemand_grid_item,
null);
viewHolder = new ViewHolder();
viewHolder.title = ((TextView) convertView
.findViewById(R.id.ondemand_grid_item_title));
viewHolder.image = ((ImageView) convertView
.findViewById(R.id.ondemand_grid_item_image));
viewHolder.iconImage = ((ImageView) convertView
.findViewById(R.id.on_demand_trailer_icon));
viewHolder.showSelectedImage = (ImageView) convertView.findViewById(R.id.ondemand_grid_item_img);
viewHolder.showSelectedImage.setVisibility(View.INVISIBLE);
viewHolder.showSelectedImage.setSelected(true);
viewHolder.seasonNumber = (TextView) convertView.findViewById(R.id.ondemand_grid_item_season);
viewHolder.seasonNumber.setVisibility(View.INVISIBLE);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
final OnDemandItem onDemandItem = getItem(position);
imageLoader.DisplayImage(onDemandItem.getPosterUrl(), viewHolder.image, onDemandItem.getGenrePlaceHolder());
showHideTrailerIcon(viewHolder, onDemandItem);
if (onDemandItem.getType() == AssetTypeEnum.SERIE) {
if (onDemandItem.getSeasonNumber() != null && !"".equals(onDemandItem.getSeasonNumber())) {
viewHolder.seasonNumber.setVisibility(View.VISIBLE);
viewHolder.seasonNumber.setText("Seizoen " + onDemandItem.getSeasonNumber());
}
}
viewHolder.title.setText(onDemandItem.getTitle());
if (selectedOndemandItemId == onDemandItem.getId()) {
convertView.findViewById(R.id.ondemand_grid_item_img).setVisibility(View.VISIBLE);
} else {
ImageView showSelectedImage = (ImageView) convertView.findViewById(R.id.ondemand_grid_item_img);
if (showSelectedImage != null) {
showSelectedImage.setVisibility(View.INVISIBLE);
}
}
return convertView;
}`
Где: imageLoader.DisplayImage (onDemandItem.getPosterUrl (), viewHolder.image, onDemandItem.getGenrePlaceHolder ());метод загрузки изображения в асинхронном режиме