Android RecyclerView 在 回滑的时候 自定义 imageview 圆角图片失效,布局中使用SmartRefreshLayout 进行刷新,在加载的时候圆角图片不生效,再回滑的时候,圆角图片失效
4条回答 默认 最新
CSDN专家-深度学习进阶 2023-06-25 09:21关注可能是由于Recycler View的回收重用机制导致的。当Recycler View滑动时,它会重用之前滑出屏幕的视图来显示新的内容,以提高性能。之前设置的圆角图片可能会被新的内容所替换,导致圆角失效。
可以在RecyclerView的Adapter中的onBindViewHolder方法中重新设置圆角图片
可参考RecyclerView使用 及 滑动时加载图片优化方案_gao_chun的博客-CSDN博客 本篇博文主要给大家分享关于RecyclerView控件的使用及通过继承RecyclerView来实现滑动时加载图片的优化方案,也同样能解决防止图片乱序的问题,之前有在网上有看到大神对Android中ListView异步加载图片乱序问题进行过分析,并深入剖析原理后分别给出了3种对应的解决方案:一 、使用findViewWithTag。二、使用弱引用关联。三、使用Volley框架提供的NetworkImageView。看了之后思索了很久,后来才想到,哦,原来自己也一直这么在用。也算是一种解决方案吧,虽然不是从https://blog.csdn.net/gao_chun/article/details/48550117
// 在Adapter的onBindViewHolder方法中重新设置圆角图片 @Override public void onBindViewHolder(MyViewHolder holder, int position) { // 设置图片圆角 setRoundedImage(holder.imageView, imageUrlList.get(position)); } // 设置圆角图片 private void setRoundedImage(ImageView imageView, String imageUrl) { Glide.with(context) .load(imageUrl) .transform(new RoundedCorners(20)) .into(imageView); } // 在刷新时清空RecyclerView的缓存 refreshLayout.setOnRefreshListener(() -> { recyclerView.getRecycledViewPool().clear(); // 重新设置圆角图片 adapter.notifyDataSetChanged(); refreshLayout.finishRefresh(); });评论 打赏 举报解决 1无用