我正在尝试更新progressBar,它是其中一个RecyclerView项目的一部分。我知道我可以用两种方式做到这一点,
方法1:通过调用notifyItemChanged(position)
刷新项目行方法2:使用LayoutMananger对象上的方法findViewByPosition()访问视图。
但不幸的是,他们中没有一个人在我的情况下工作。
如果我使用第一个,整个项目将重新绘制,recyclerview的背景颜色为灰色,项目为白色,因此用户可以注意到整个项目刷新。
如果我尝试第二个,滚动时我会遇到问题。
我想像WhatsApp那样更新进度。提前致谢
答案 0 :(得分:17)
如果我使用第一个,整个项目将重新绘制,recyclerview的背景颜色为灰色,项目为白色,因此用户可以注意到整个项目刷新。
我也遇到了这个问题。要修复它,您需要关闭默认项目更改动画。一旦关闭项目更改动画,您的recyclerView项目将更新而不会闪烁/跳跃,允许您毫无问题地使用notifyItemChanged(int)
。
关闭默认项目更改动画,如下所示:
((SimpleItemAnimator) myRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false);