RecyclerView不同步

时间:2017-12-07 18:39:26

标签: android android-recyclerview recycler-adapter cardview

我创建了一个firebase聊天。它使用RecyclerViewCardViews来显示消息。我在CardView OnBindViewHolder RecyclerView.Adapter方法中更改了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); } } 重力,因此发件人的消息将在一侧,而其他方面则在WhatsApp中。 这是我的代码,

onViewAttachedToWindow

第一次加载邮件enter image description here

时,此方法正常

但是当我滚动或发送新消息时不同步 enter image description here

这可能是什么原因?我也试过更新onViewRecycled,([^,@]+@[^,@]),[^,]*$ 方法中的引力。

1 个答案:

答案 0 :(得分:2)

尝试更改此代码

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

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