目前我正在使用
Android架构组件进行App开发一切都与分页库一起工作现在我想删除recyclelerview项使用PagedListAdapter来填充这个我们需要添加数据源并且从数据源列表更新使用LiveData我想要删除列表中的项目notifyItemRemoved()正在从PagedList工作我收到此异常:
java.lang.UnsupportedOperationException java.util.AbstractList.remove(AbstractList.java:638)
解决方法
由于您不能直接修改PagedList中的数据,因为我认为它是不可变的,因此在这种情况下实现删除项目的关键是在代码中的某处维护一个后端数据集,它代表到目前为止您收到的所有数据. ArrayList为我工作.
如果要删除项目,请将其从支持数据集中删除,并在数据源上调用invalidate.这将触发loadInitial()调用,您可以在其中将后备数据集传递给callback.onResult()函数.您的PagedListAdapter将使用您提供的DiffUtil.ItemCallback来巧妙地确定其数据已更新并相应地更新自身.
本教程帮助我了解正确的流程,以便在使用分页库时正确删除项目:
https://medium.com/@FizzyInTheHall/implementing-swipe-to-delete-with-android-architecture-components-a95165b6c9bd
可以在此处找到与教程相关的repo:
https://gitlab.com/adrianhall/notes-app