RecyclerView
调用 notifyItemChanged()
导致空白条目
我有一个RecyclerView
,每个子项目都有一个RecyclerView
,当RecyclerView
的数据集已更改时(例如,插入了某些项目)。我尝试调用父 RecyclerView
的 notifyItemChanged()
来刷新它。但是当我调用该功能时,它将导致下面的空白项目。
mMessagesAdapter.notifyItemChanged(position);
当我致电notifyItemChanged()
担任位置时,下面会有一个空白的项目,可以看到,但是没有数据,并且都是白色的。
演示:https://github.com/zoodeveloper/nestbug
adapter.notifyItemChanged
()用于刷新现有项目。如果要添加新项目,则应致电adapter.notifyItemRangeChanged(position, data.size())
如果要插入新项目,则可以使用notifyItemInserted (int position)
它用于通知任何注册的观察者,该项目反映了 在位置已被新插入。先前处于位置的项目 现在位于位置 1。
也许您应该考虑从主线程调用apapter.notifyitemchanged()。
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() { adapter.notifyItemChanged() }
};
mainHandler.post(myRunnable);