繁体   English   中英

BaseAdapter回收问题-Android

[英]BaseAdapter recycling issue - Android

我有以下BaseAdapter,问题是我看到一个ImageView回收问题,其中图像正显示在另一个ImageView中,仅在快速滚动时才出现此问题,这是我做错了什么?

让我逐步介绍我要执行的操作的逻辑,我在代码中有两组组,组和用户,它们都是ArrayList。

现在,这个users.size()+ groups.size()给出了总数,在getView中,我必须判断该视图是属于组还是属于用户。

public class ProfileAdapter extends BaseAdapter {

    ArrayList<String> groups = new ArrayList<>();
    ArrayList<String> users = new ArrayList<>();
    count = users.size() + groups.size();


    public int getCount() {
        return count;
    }

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

        final ViewHolder holder;
        if (convertView == null) {
            convertView =  infalter.inflate(R.layout.grid_item, null);
            holder = new ViewHolder();
            holder.image = (ImageView) convertView.findViewById(R.id.grid_image);
            holder.name = (TextView) convertView.findViewById(R.id.name);
            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.image.setImageResource(android.R.color.darker_gray);


        if (position < groups.size()) {
            //I'm in the group section so get me the group name 
            holder.name.setText(groups.get(position));
            TextDrawable drawable = TextDrawable.builder().beginConfig()...;
            holder.image.setImageDrawable(drawable);

        } else {
        //I'm in the user section so get me the user image
        //this is where the problem is happening
         imageLoader.displayImage( "file://" + users.get(position - groups.size()), holder.image);

        }

        return convertView;
    }


    class ViewHolder {
        ImageView image;
        TextView name;


    }


}

我会说问题出在这里: imageLoader.displayImage是一个异步函数,在某些情况下,任务可能会将图像加载到回收的ImageView中。

回收视图时,您应该尝试在回收的ImageView上调用: imageLoader.cancelDisplayTask

我认为是因为您正在使用UIL lib,请查看此评论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM