RecyclerView有时会复制项目 [英] RecyclerView duplicating items some time
本文介绍了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屋!
查看全文