包含来自volley库的NetworkImageView的Android gridview在滚动时复制图像

时间:2016-01-08 09:58:30

标签: android gridview android-volley networkimageview

我在Gridview中使用NetworkImageView从Url加载图片。

它第一次运行正常,但在Scroll上,网格项开始在随机位置重复。

以下是我的GridView适配器代码:

 @Override
public View getView(int position, View convertView, ViewGroup parent) {

    if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater)
                context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.grid_item, null);
    }

    NetworkImageView imageViewBand = (NetworkImageView) convertView.findViewById(R.id.imageView_grid_item);
    TextView textViewBand = (TextView) convertView.findViewById(R.id.textView_grid_item);
    imageViewBand.setDefaultImageResId(R.drawable.college_default_icon_grid_view);
    imageViewBand.setAdjustViewBounds(true);
    imageViewBand.setImageUrl(Constants.schoolImageUrl, AppController.getInstance(context).getImageLoader());

    textViewBand.setText(schoolArrayList.get(position).getSchoolName());

    return convertView;
}

网格项中的文字工作正常,但只有凌空图像加载器导致图像重复才会出现问题。

请帮忙。

1 个答案:

答案 0 :(得分:1)

您的问题是您正在重复使用滚动视图,但在加载新图像之前,您没有将 imageViewBand 图像网址重置为 null 。所以你需要做的是在重用之前将image url设置为null

下次尝试使用GridLayoutManager实现 RecyclerView ,因为使用RecyclerView重用视图会自动完成