gpt4 book ai didi

android - RecyclerView : How to clear the recycled views from RecyclerView. 回收 View 池

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:12 26 4
gpt4 key购买 nike

情况是这样的:RecyclerView 项目 View 有一个复杂的布局。
在某些时候,我以这种方式修改 RecyclerView 项目的布局:
前。 itemView 中修改后的 View 的索引 = 3;

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 个回收项目 View 将以旧宽度显示。现在我正试图找到如何从 RecycledViewPool 中删除这些 View ,甚至是更好的解决方案:也修改它们的宽度,但我找不到获取这些 View 的方法。

我尝试了 mRecyclerView.getRecycledViewPool().clear() 但旧 View 不断出现。

最佳答案

要防止 RecyclerView 缓存分离但未回收的 View ,请使用:

mRecyclerView.setItemViewCacheSize(0)

另一种稍微更激进的方法是为您希望缓存的项目调用 notifyDataSetChanged()notifyItemChanged() - 这将强制它们被回收,并且您将能够在 onBindViewHolder()

中更新它们

关于android - RecyclerView : How to clear the recycled views from RecyclerView. 回收 View 池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com