gpt4 book ai didi

android - RecyclerView - 如何同时更新和移动项目

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

我有一个由 SortedList 支持的 RecyclerView 适配器。如果我对某个项目进行更改,它会同时更改该项目并将其重新定位在列表中。

我发现,如果我在项目的开始或结束位置使用 notifyItemChanged,即使与 notifyItemMoved 一起使用,它似乎也没有任何效果,要么之前或之后。

如果我使用 notifyItemMoved,它会正确触发移动动画,但 View 不会改变并且仍然显示过时的信息。

如果我使用 notifyDatasetChanged,它会更新该行然后移动它,但它按顺序执行,速度很慢,而且它显然会通知整个列表,这并不是我们想要的。

有什么方法可以结合移动和更新动画吗?为什么 notifyItemChanged 什么都不做?

最佳答案

RecyclerView.Adapter reference据说,notifyItemMoved() 只是结构更改,因此不会更新数据。另一方面,notifyItemChanged() 据说是数据更改。

当调用 notifyItemChanged() 时,它会调用 RecyclerView#onBindViewHolder(),因此它应该更新您的 View 。

我更新和移动的工作方法是:

notifyItemChanged(oldPos); notifyItemMoved(oldPos, newPos);

关于android - RecyclerView - 如何同时更新和移动项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42615554/

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