Android 包含来自 volley 库的 NetworkImageView 的 gridview 在滚动时复制图像
Android gridview containing NetworkImageView from volley library duplicates image on scroll
我在我的 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;
}
网格项中的文本工作正常,但只有 volley 图像加载器会导致图像重复才会出现此问题。
请帮忙。
您的问题是您在滚动时重复使用视图,但没有将 imageViewBand 图像 url 重置为 null 在加载新图像之前。所以你要做的是在重新使用之前将图像 url 设置为 null
下次尝试使用 GridLayoutManager 实现 RecyclerView,因为 RecyclerView 会自动完成重用视图
我在我的 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;
}
网格项中的文本工作正常,但只有 volley 图像加载器会导致图像重复才会出现此问题。
请帮忙。
您的问题是您在滚动时重复使用视图,但没有将 imageViewBand 图像 url 重置为 null 在加载新图像之前。所以你要做的是在重新使用之前将图像 url 设置为 null
下次尝试使用 GridLayoutManager 实现 RecyclerView,因为 RecyclerView 会自动完成重用视图