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无用
悬赏问题
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法