gpt4 book ai didi

android - 如何从 Android 分页组件中的 PagedListAdapter 中删除项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:53 25 4
gpt4 key购买 nike

我使用 Paging with Retrofit 从 REST API 加载通知数据列表。

当我按下通知项的删除按钮时,我调用删除 API 将其删除。删除 API 响应成功后从 PagedListAdapter 中删除它的正确方法是什么? PagedListPagedListAdapter 不支持按索引或对象删除项目。

我尝试调用 DataSource.validate() 但它从开始重新加载,而不是从当前页面重新加载。

最佳答案

根据official doc :

If you have more granular update signals, such as a network API signaling an update to a single item in the list, it's recommended to load data from network into memory. Then present that data to the PagedList via a DataSource that wraps an in-memory snapshot. Each time the in-memory copy changes, invalidate the previous DataSource, and a new one wrapping the new state of the snapshot can be created.

PagedList 是不可变的,因此您不能对其进行任何修改。你需要做的是:

  1. 维护一个可变列表 L,将您的服务器响应存储在您的自定义 DataSource 中。
  2. 将其传递给 LoadInitialCallback.onResult()(PagedList 现在由 L 支持)。
  3. L 做任何你喜欢的事。
  4. 调用 DataSource.invalidate() 与新数据源配对,因此调用 DataSource.loadInitial() 以反射(reflect)步骤 3 中的更改。

关于android - 如何从 Android 分页组件中的 PagedListAdapter 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51875126/

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