Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我的recyclerview在滚动时会混淆数据?_Android_Android Recyclerview_Recyclerview Layout - Fatal编程技术网

Android 为什么我的recyclerview在滚动时会混淆数据?

Android 为什么我的recyclerview在滚动时会混淆数据?,android,android-recyclerview,recyclerview-layout,Android,Android Recyclerview,Recyclerview Layout,我正在使用回收器gridview显示一些卡片项目。 它工作正常,直到我开始向下滚动。所有的东西都混在一起了。 我知道这是因为回收。但如何处理呢 public void onBindViewHolder(ViewHolder viewHolder, int i) { if (listAll.get(i) != null) { viewHolder.ivPrimaryImage.setTag(listAll.get(i).getPost

我正在使用回收器gridview显示一些卡片项目。 它工作正常,直到我开始向下滚动。所有的东西都混在一起了。 我知道这是因为回收。但如何处理呢

public void onBindViewHolder(ViewHolder viewHolder, int i) {




            if (listAll.get(i) != null) {
                viewHolder.ivPrimaryImage.setTag(listAll.get(i).getPostId());
                viewHolder.ivPrimaryImage.setImageBitmap(null); // Added for flickering issue
                viewHolder.tvTitle.setText(listAll.get(i).getTitle());
                postId = listAll.get(i).getPostId();
                Image image = new Image();
                image.setImg(viewHolder.ivPrimaryImage);
                viewHolder.holderId = i;
                String url = postId + "_1";

                Picasso.with(context).load(url).fit().into(viewHolder.ivPrimaryImage, new Callback() {
                    @Override
                    public void onSuccess() {

                    }

                    @Override
                    public void onError() {


                    }
                });
                viewHolder.itemView.setVisibility(View.VISIBLE);
            } else {

                viewHolder.itemView.setVisibility(View.GONE);
            }


    }
我的onCreateViewHolder看起来像这样

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = null;

    if( i == 1) {
        v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.list_items_1, viewGroup, false);

    }else if(i == 0){
        v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.headers, viewGroup, false);
    }else if(i == 2){
        v = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.headers, viewGroup, false);
    }

    ViewHolder viewHolder = new ViewHolder(v,i);

    return viewHolder;
}
我的支架是这样的:

class ViewHolder extends RecyclerView.ViewHolder{

    TextView tvTitle;
    ImageView ivPrimaryImage;
    int holderId;
    TextView tvPostsMess ;

    public ViewHolder(View itemView, int i) {
        super(itemView);
        if(i == 0){
            tvPostsMess = (TextView)itemView.findViewById(R.id.tvPosts);
            holderId = 0;
        }else if( i == 1) {
            ivPrimaryImage = (ImageView) itemView.findViewById(R.id.ivPrimaryImageReview);
            tvTitle = (TextView) itemView.findViewById(R.id.tvTitleName);
            holderId = 1;
        }else if(i == 2){
            tvPostsMess = (TextView)itemView.findViewById(R.id.tvPosts);
            holderId = 2;
        }


    }
}

请帮忙!有人。

我和viewHolder搞砸了。holderId=I;谢谢。你找到答案了吗?