Android RecyclerView绘图问题(闪烁)

时间:2016-04-05 20:21:51

标签: android refresh android-recyclerview

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

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

另外一个复杂因素是我使用空视图来显示recycleview是否为空...这会更加闪烁......

1 个答案:

答案 0 :(得分:5)

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

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

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

    notifyItemChanged(int position)

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

而不是notifyDataSetChanged()