我想知道为什么即使在设置适配器时滚动gridview时也会反复调用处于第一位置的视图。这导致我的gridview不能反复滚动,因为它会反复重新加载图像。
似乎
var blob = new Blob([data]);
var url = window.URL.createobjecturl(blob);
引起了反复调用,因为如果删除此行,则可以平滑滚动gridview。
有什么改进建议吗?谢谢。
gridview数组适配器的实现
Picasso.with(context).load(file).into(viewImage);
答案 0 :(得分:0)
始终尝试将ViewHolder
模式用于列表和网格。这将提高列表和网格的性能。其他人认为它不仅取决于Picasso,而且还取决于您的图片网址,您的xml布局文件中的内容,加载数据等。
尝试使用ViewHolder
来避免滚动问题并提高其性能
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if(convertView==null){
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.grid_item,parent,false);
convertView.setTag(viewHolder);
}
else {
viewHolder=(ViewHolder)convertView.getTag();
}
viewHolder.image=(ImageView)convertView.findViewById(R.id.thumbnail);
viewHolder.title=(TextView)convertView.findViewById(R.id.title);
viewHolder.title.setText(Html.fromHtml(values.getPosts().get(position).getTitle()));
imageView.setImageResource(Imageid[position]);
return convertView;
}
private static class ViewHolder{
public static ImageView image;
public static TextView title;
}
其他想法是,如果以前使用毕加索时已加载图像,则尝试从现金加载图像。为此,请检查此tutorial。