【问题标题】:Update a View state/data inside a item of a Recycler View list更新 Recyclerview 列表项内的视图状态/数据
【发布时间】:2019-12-05 01:39:49
【问题描述】:

寻找更新视图状态的解决方案,假设一个按钮出现在回收站视图的项目中。 示例可能是 Facebook 建议的朋友列表,您将请求发送给成员,按钮状态从添加朋友变为待处理。

我不想做的事情

  1. RecyclerView 完成数据更新
  2. 项目更新(这样图像在重绘时不会被轻弹)。

【问题讨论】:

  • 您可以使用 DiffUtil 是一个实用程序类,它可以计算两个列表之间的差异并输出一个更新操作列表,将第一个列表转换为第二个列表。它可用于计算 RecyclerView 适配器的更新。
  • 但是完整的视图持有者也会得到更新,对吧?我只想更新视图持有者中的某些视图。
  • 不,不会。如果您有一些更改,它将触发 onBindViewHolder(holder: ViewHolder, position: Int, payloads: MutableList) 而不是 onCreateViewHolder(parent: ViewGroup, viewType: Int)

标签: android android-recyclerview


【解决方案1】:

Partial changes with payloads 是解决此问题的方法 - 这样您就不会更新整个项目,避免闪烁。 This article 很好地解释了这种技术。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多