Android: 更新 ListView 中的单个项目而不冻结其他项目
Android: Updating single item in ListView without freezing the others
我有一个 ListView,其中包含异步更新的项目(它们的内容已更改或项目被完全删除)。为此,我更新了 ListView 适配器的数据集,然后在适配器上调用 notifyDatasetChanged()
。这很有效,但是每个项目都有一个 ProgressBar
(旋转),表示该项目尚未更新。当其中一项的更新到达并调用 notifyDatasetChanged()
时,其他项的 ProgressBar
会冻结片刻,这似乎是一种糟糕的用户体验。我还在我的适配器中使用 ViewHolder
模式。
有没有一种方法可以只更新 ListView 的一个项目,而不冻结所有其他项目?
考虑使用 RecyclerView - 它有多种 notify...() 方法。
看看 this one - 我想你可以使用它。
你可以简单地制作类似的东西:
mAdapter.notifyItemChanged(itemChangedIndex);
我有一个 ListView,其中包含异步更新的项目(它们的内容已更改或项目被完全删除)。为此,我更新了 ListView 适配器的数据集,然后在适配器上调用 notifyDatasetChanged()
。这很有效,但是每个项目都有一个 ProgressBar
(旋转),表示该项目尚未更新。当其中一项的更新到达并调用 notifyDatasetChanged()
时,其他项的 ProgressBar
会冻结片刻,这似乎是一种糟糕的用户体验。我还在我的适配器中使用 ViewHolder
模式。
有没有一种方法可以只更新 ListView 的一个项目,而不冻结所有其他项目?
考虑使用 RecyclerView - 它有多种 notify...() 方法。
看看 this one - 我想你可以使用它。
你可以简单地制作类似的东西:
mAdapter.notifyItemChanged(itemChangedIndex);