gpt4 book ai didi

android - RecyclerView onBindViewHolder 为一项调用多次

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:21 28 4
gpt4 key购买 nike

我已经将 RececlerViewViewHolder 模式结合使用了一段时间。我正在实现自定义 Adapter

我不是在我的代码中搜索特定的错误帮助。

我只是想知道,如果它是正常的,onBindViewHolder 方法在滚动到列表末尾并向上滚动时被多次调用(对于同一项目)。在这种情况下,onBindViewHolder 再次为项目 0 和 1 调用(该列表总共包含 7 个项目)

是否有可能在不通知数据卫星已更改的情况下再次调用此方法?

我有点困惑。

亲切的问候,手掌

最佳答案

是的,RecyclerView 多次调用 onBindViewHolder() 是完全正常的。

RecyclerView 仅创建填充屏幕所需的最少数量的 Views。它通过重用旧的/创建的 Views 来工作。因此,当您向下滚动时,在滚动到顶部期间隐藏的 View 将被删除并带到最后一个可见的 View 旁边并添加到那里。但是由于 View 当前与旧数据绑定(bind) onBindViewHolder() 再次调用以确保 View 之前仅与正确的数据绑定(bind)它被渲染。

同样,您会注意到 onCreateViewHolder() 仅调用它所需的确切的最小 Views 数量。

为了更好地理解 RecyclerView 的工作原理,我建议您阅读 Recycler、LayoutManager 和 Recycler.Adapter 这三个 RecyclerView 的核心部分。

关于android - RecyclerView onBindViewHolder 为一项调用多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48470052/

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