更新RecyclerView项ProgressBar而不在适配器上调用notifyItemChanged(int)

Pru*_*raj 5 multithreading android android-layout android-adapter android-recyclerview

我正在尝试更新progressBar,它是其中一个RecyclerView项目的一部分.我知道我可以用两种方式做到,

方法1:通过调用notifyItemChanged(position)刷新项目行

方法2:使用LayoutMananger对象上的findViewByPosition()方法访问视图.

但不幸的是,他们中没有一个在我的情况下工作.

如果我使用第一个,整个项目将重新绘制,recyclerview的背景颜色为灰色,项目为白色,因此用户可以注意到整个项目刷新.

如果我尝试第二个,滚动时我会遇到问题.

我想像WhatsApp那样更新进度.提前致谢

Sak*_*boy 19

如果我使用第一个,整个项目将重新绘制,recyclerview的背景颜色为灰色,项目为白色,因此用户可以注意到整个项目刷新.

我也遇到过这个问题.要修复它,您需要关闭默认项目更改动画.一旦关闭项目更改动画,您的recyclerView项目将更新而不会闪烁/跳跃,让您可以notifyItemChanged(int)毫无问题地使用.

关闭默认项目更改动画,如下所示:

((SimpleItemAnimator) myRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
Run Code Online (Sandbox Code Playgroud)