我创建了一个firebase聊天。它使用RecyclerView
和CardViews
来显示消息。我在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
时,此方法正常
这可能是什么原因?我也试过更新onViewRecycled
和,([^,@]+@[^,@]),[^,]*$
方法中的引力。
答案 0 :(得分:2)
尝试更改此代码
if(messageItem.getFrom() == new UserLocalStore(context).getUserDetails().getId()){
holder.linearLayout.setGravity(Gravity.RIGHT);
}else{
holder.linearLayout.setGravity(Gravity.LEFT);
}
您需要在else中设置左重力,因为滚动时回收视图会回收视图