如何在聊天适配器中标记特定的聊天气泡
How to mark specific chat bubble in Chat Adapter
我有一个群聊,我想标记一条特定的消息(那些在 isProducer
是 true
时发送的消息)。问题是它把所有的消息都标记在一起了……
这是我的 Adapter
代码:
if(customer_id.equals(message.getUserId()))
isMe = true;
if(message.getUserId().equals(producer_id))
isProducer = true;
if (isMe) {
holder.imageRight.setVisibility(View.VISIBLE);
holder.imageLeft.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
} else {
holder.imageLeft.setVisibility(View.VISIBLE);
holder.imageRight.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
holder.body.setText(message.getBody());
if (isProducer) {
holder.body.setTypeface(null, Typeface.BOLD);
}
谢谢!
if(customer_id.equals(message.getUserId()))
isMe = true;
if(message.getUserId().equals(producer_id))
isProducer = true;
if (isMe) {
holder.imageRight.setVisibility(View.VISIBLE);
holder.imageRight.setbackground(R.drawable.rightimg);
holder.imageLeft.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
} else {
holder.imageLeft.setVisibility(View.VISIBLE);
holder.imageRight.setbackground(R.drawable.leftimg);
holder.imageRight.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
holder.body.setText(message.getBody());
if (isProducer) {
holder.body.setTypeface(null, Typeface.BOLD);
}
}
你可以使用 R.drawable.leftimg 并且 R.drawable.rightimg 应该是 ninepatch 图片
试试这个
isMe = customer_id.equals(message.getUserId());
isProducer = message.getUserId().equals(producer_id);
if (isMe) {
holder.imageRight.setVisibility(View.VISIBLE);
holder.imageLeft.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
} else {
holder.imageLeft.setVisibility(View.VISIBLE);
holder.imageRight.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
holder.body.setText(message.getBody());
if (isProducer) {
holder.body.setTypeface(null, Typeface.BOLD);
} else {
holder.body.setTypeface(null, Typeface.NORMAL); // Or anything else
}
我有一个群聊,我想标记一条特定的消息(那些在 isProducer
是 true
时发送的消息)。问题是它把所有的消息都标记在一起了……
这是我的 Adapter
代码:
if(customer_id.equals(message.getUserId()))
isMe = true;
if(message.getUserId().equals(producer_id))
isProducer = true;
if (isMe) {
holder.imageRight.setVisibility(View.VISIBLE);
holder.imageLeft.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
} else {
holder.imageLeft.setVisibility(View.VISIBLE);
holder.imageRight.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
holder.body.setText(message.getBody());
if (isProducer) {
holder.body.setTypeface(null, Typeface.BOLD);
}
谢谢!
if(customer_id.equals(message.getUserId()))
isMe = true;
if(message.getUserId().equals(producer_id))
isProducer = true;
if (isMe) {
holder.imageRight.setVisibility(View.VISIBLE);
holder.imageRight.setbackground(R.drawable.rightimg);
holder.imageLeft.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
} else {
holder.imageLeft.setVisibility(View.VISIBLE);
holder.imageRight.setbackground(R.drawable.leftimg);
holder.imageRight.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
holder.body.setText(message.getBody());
if (isProducer) {
holder.body.setTypeface(null, Typeface.BOLD);
}
}
你可以使用 R.drawable.leftimg 并且 R.drawable.rightimg 应该是 ninepatch 图片
试试这个
isMe = customer_id.equals(message.getUserId());
isProducer = message.getUserId().equals(producer_id);
if (isMe) {
holder.imageRight.setVisibility(View.VISIBLE);
holder.imageLeft.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.RIGHT);
} else {
holder.imageLeft.setVisibility(View.VISIBLE);
holder.imageRight.setVisibility(View.GONE);
holder.body.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
holder.body.setText(message.getBody());
if (isProducer) {
holder.body.setTypeface(null, Typeface.BOLD);
} else {
holder.body.setTypeface(null, Typeface.NORMAL); // Or anything else
}