RecyclerView 不同步

RecyclerView goes out of Sync

我创建了一个 firebase 聊天。它使用 RecyclerViewCardViews 来显示消息。我正在更改 RecyclerView.AdapterOnBindViewHolder 方法中的 CardView Gravity,因此发件人消息将在一侧,其他人在另一侧(WhatsApp)。 这是我的代码,

public void onBindViewHolder(ViewHolder holder, int position) {
        
        final MessageItem messageItem = messageItems.get(position);
        holder.name.setText(messageItem.getSenderName());
        holder.message.setText(messageItem.getMessage());
        
        if(messageItem.getFrom() == new UserLocalStore(context).getUserDetails().getId()){
            holder.linearLayout.setGravity(Gravity.RIGHT);
        }

    }

这在第一次加载消息时工作正常

但是当我滚动浏览或发送新消息时不同步

这可能是什么原因?我也尝试更新 onViewAttachedToWindowonViewRecycled 方法中的重力。

尝试更改此代码

if(messageItem.getFrom() == new UserLocalStore(context).getUserDetails().getId()){
    holder.linearLayout.setGravity(Gravity.RIGHT);
}else{
    holder.linearLayout.setGravity(Gravity.LEFT);
}

您需要在 else 中设置左引力,因为滚动时 recyclerview 会回收视图