Android RecyclerView绘图问题(闪烁)

我有一个片段,其中包含一个RecyclerView.
选择列表中的项目将启动Activity2,用于修改项目.
在Activity2完成后返回Activity1我观察到RecyclerView首先绘制了Activity2之前的状态(保存了旧项目状态),然后在onActivityResult中我执行了restartLoader(),它提供了一组更新的数据,然后RecyclerView再次使用new重绘自身数据.

这种行为的问题是RecyclerView闪烁,因为它最初绘制旧数据然后用新数据重绘自己.假设我总是想在Activity1.onActivityResult()中使用refreshLoader(),有没有一种避免这种闪烁的好方法?

额外的复杂性是我使用空视图来显示recycleview是否为空…这会增加闪烁更多……

解决方法:

要删除回收站视图上的更新闪烁,您可以使用:

 RecyclerView.ItemAnimator animator = mRecyclerView.getItemAnimator();
    if (animator instanceof SimpleItemAnimator) {
        ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
    }

要更新RecyclerView中的项目,您应该使用

    notifyItemChanged(int position)

– 通知任何注册观察员该位置的项目已更改.

而不是notifyDataSetChanged()

上一篇:javascript – 如何在特定时区的特定时间刷新特定日期的页面?


下一篇:java – 下载后如何刷新页面