滚动gridview时反复调用Gridview的第一个位置

时间:2018-08-27 21:47:16

标签: gridview android-arrayadapter

我想知道为什么即使在设置适配器时滚动gridview时也会反复调用处于第一位置的视图。这导致我的gridview不能反复滚动,因为它会反复重新加载图像。

似乎 var blob = new Blob([data]); var url = window.URL.createobjecturl(blob); 引起了反复调用,因为如果删除此行,则可以平滑滚动gridview。

有什么改进建议吗?谢谢。

gridview数组适配器的实现

Picasso.with(context).load(file).into(viewImage);

1 个答案:

答案 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