RecyclerView
调用notifyItemChanged()
导致输入空白
当子项中RecyclerView
的数据集已更改(例如,插入了某些项)时,我有一个RecyclerView
,并且每个子项都有一个RecyclerView
。我尝试调用父RecyclerView
的{{1}}来刷新它。但是,当我调用该函数时,它将导致下面的空白项。
notifyItemChanged()
当我打电话给某个职位的mMessagesAdapter.notifyItemChanged(position);
时,下面会有一个空白项目,它是可见的,但是没有数据,而且全是白色。
答案 0 :(得分:2)
adapter.notifyItemChanged
()用于刷新现有项目。如果要添加新项目,则应致电adapter.notifyItemRangeChanged(position, data.size())
答案 1 :(得分:0)
如果您要插入新项目,则可以使用notifyItemInserted (int position)
它用于通知任何注册的观察者该项目已反映 在位置已被新插入。先前位于的位置 现在位于位置+1。
答案 2 :(得分:0)
也许您应该考虑从主线程调用adapter.notifyItemChanged()。
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() { adapter.notifyItemChanged() }
};
mainHandler.post(myRunnable);