Java Recyclerview调用notifyItemChanged以生成空白项
Java Recyclerview调用notifyItemChanged以生成空白项,java,android,android-recyclerview,Java,Android,Android Recyclerview,RecyclerView调用notifyItemChanged()以生成空白条目 我有一个RecyclerView,当子项中的RecyclerView数据集发生更改(例如插入了某些项)时,每个子项都有一个RecyclerView。我尝试调用父级RecyclerView的notifyItemChanged()来刷新它。但当我调用该函数时,它将导致下面出现一个空白项 mMessagesAdapter.notifyItemChanged(position); 当我为一个职位调用notifyItemC
RecyclerView
调用notifyItemChanged()
以生成空白条目
我有一个RecyclerView
,当子项中的RecyclerView
数据集发生更改(例如插入了某些项)时,每个子项都有一个RecyclerView
。我尝试调用父级RecyclerView
的notifyItemChanged()
来刷新它。但当我调用该函数时,它将导致下面出现一个空白项
mMessagesAdapter.notifyItemChanged(position);
当我为一个职位调用notifyItemChanged()
时,下面会有一个空白项,可以看到,但没有数据,并且都是白色的
演示:适配器.notifyItemChanged()用于刷新现有项。如果要添加新项目,则应调用适配器.notifyItemRangeChanged(position,data.size())如果要插入新项目,则可以使用
notifyItemInserted(int position)
它用于通知任何已登记的观察员该项目已反映
在新插入的位置。该项以前位于位置
现在处于位置+1
也许你应该考虑从主线程调用Advult.NoTyItEnExchange()。
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() { adapter.notifyItemChanged() }
};
mainHandler.post(myRunnable);
您在哪里插入项目
.notifyItemChanged()
用于更新现有项目。我的布局是RecyclerView,当我将项目插入子RecyclerView时,它是RecyclerView中的每个项目,我调用父RecyclerView的notifyItemChanged来刷新子RecyclerView所在的项目,父RecyclerView将在我用您的注释刷新的项目下方生成一个空白项目,如果您正在插入项目,则需要调用notifyItemInserted而不是notifyItemChanged,请尝试此操作否,我将数据插入子RecyclerView,但每次插入操作都可能导致子RecyclerView的项目重新排序,因此,我选择调用父RecyclerView的notifyItemChanged来刷新其数据的子RecyclerViewchanged@Wesley由于这个问题是书面的,很难确定实际问题是什么。当有两个RecyclerView
时,您可能需要相应地更新适配器的数据,然后再调用它的。notifyItemChanged()
。。。然后它应该适当地更新显示;假设它是正确的位置
(这可能是一个完全不同的位置,取决于它是哪一个RecyclerView
)。我已经将演示推到github,你能帮我吗,谢谢。我已经把演示推到github,你能帮我吗,谢谢。