android – RecyclerView:如何清除RecyclerView.RecycledViewPool中的回收视图

android – RecyclerView:如何清除RecyclerView.RecycledViewPool中的回收视图,第1张

概述情况如下:RecyclerView项目视图具有复杂的布局. 在某些时候,我这样修改RecyclerView项目的布局: 防爆. itemView = 3中修改后的View的索引; for (int i=0; i < mRecyclerView.getChildCount(); i++) { ViewGroup itemView = ((ViewGroup) mRecyclerView.g 情况如下:RecyclerVIEw项目视图具有复杂的布局.

在某些时候,我这样修改RecyclerVIEw项目的布局:

防爆. itemVIEw = 3中修改后的VIEw的索引;

for (int i=0; i < mRecyclerVIEw.getChildCount(); i++) {    VIEwGroup itemVIEw = ((VIEwGroup) mRecyclerVIEw.getChildAt(i));    itemVIEw.getChildAt(3).getLayoutParams().wIDth = newWIDth;    itemVIEw.getChildAt(3).requestLayout();}

这一切都按预期工作,但当我滚动RecyclerVIEw时,有2-3个回收的项目视图将以旧的宽度显示.现在我试图找到如何从RecycledVIEwPool中删除这些视图,甚至是更好的解决方案:修改它们的宽度,但我找不到获取这些视图的方法.

我尝试了mRecyclerVIEw.getRecycledVIEwPool().clear()但旧的视图重新出现.

解决方法@H_502_15@ 要防止RecyclerVIEw缓存分离但未回收的视图,请使用:
mRecyclerVIEw.setItemVIEwCacheSize(0)

另一个稍微激进的方法是为你希望缓存的项调用notifyDataSetChanged()或notifyItemChanged() – 这将强制它们被回收,你将能够在onBindVIEwHolder()中更新它们

总结

以上是内存溢出为你收集整理的android – RecyclerView:如何清除RecyclerView.RecycledViewPool中的回收视图全部内容,希望文章能够帮你解决android – RecyclerView:如何清除RecyclerView.RecycledViewPool中的回收视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存