RecyclerView有时会复制项目 [英] RecyclerView duplicating items some time

查看:90
本文介绍了RecyclerView有时会复制项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿,我正在使用recyclerview来显示我的图像,但他们同时复制了重复的信息,我正在Google上搜索此问题,我发现或更多,但没有人帮助

hey guys i m using recyclerview for displaying my images but their same time duplicate the vaule i am searching this problem on google i found this and this and this or more but no one is helping

我的代码是

ShareDialog shareDialog;
String PATH;
String link , img_txt;
private ImageLoader imageLoader;
private Context context;
String url1;
CallbackManager callbackManager;
File file1;
List<ImgModel> listmodel;
    public ImageAdapter(List<ImgModel> listmodel, Context context) {
    super();
    this.listmodel = listmodel;
    this.context = context;
    setHasStableIds(true);  //added  15/7/2016
}
   @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext())
        .inflate(R.layout.img_row, parent, false);
     ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {

    ImgModel model = listmodel.get(position);
    imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
    imageLoader.get(model.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.placeholder, android.R.drawable.ic_dialog_alert));
    holder.imageView.setImageUrl(model.getImageUrl(), imageLoader);
    holder.textViewName.setText(model.getName());
    holder.imageView.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        link = listmodel.get(position).getImageUrl();
        img_txt = listmodel.get(position).getName();
        String fileExtension = link.substring(link.lastIndexOf("/"));
        Log.e("0_0","===>"+fileExtension);
        String dir = Environment.getExternalStorageDirectory() + "/Download/myapp/";
         file1 = new File(dir+fileExtension);
        Log.d("file is ","longclick"+file1);
        if (file1.exists()) {
            Intent shareIntent = new Intent();
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.setType("image/jpg");
            shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(String.valueOf(file1))));
            shareIntent.putExtra(Intent.EXTRA_TEXT, img_txt);
            context.startActivity(Intent.createChooser(shareIntent, "Share image with"));
        } else {
            new DownloadFile().execute(link);
        }
        return true;
    }
    });
    holder.imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    url1 = listmodel.get(position).getImageUrl();
    Log.e("Hey Amit", "second is url" + url1);
    Imagefull();
    }
    });
    }
@Override
public int getItemCount() {
     return listmodel.size();
     }

public long getItemId(int position) {
    return position;
}

 class ViewHolder extends RecyclerView.ViewHolder {
  public NetworkImageView imageView;
  public TextView textViewName;

  public ViewHolder(View itemView) {
    super(itemView);
    imageView = (NetworkImageView) itemView.findViewById(R.id.imageView_img);
    textViewName = (TextView) itemView.findViewById(R.id.textview_img);
    callbackManager = CallbackManager.Factory.create();
    }
}

图像在这里

推荐答案

更改布局的高度((R.layout.img_row)为wrap_content而不是match_content

Change height in your layout((R.layout.img_row) as wrap_content instead of match_content

这篇关于RecyclerView有时会复制项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆