第一个用户消息后Android泡泡聊天不同的布局

时间:2015-10-30 08:43:28

标签: java android android-layout android-listview chat

我在聊天应用程序的listview适配器中创建了“bubble”样式的消息表示。这是我想要实现的效果:

enter image description here

如您所见,如果用户连续写入两条或更多条消息,则第二条用户消息应以不同的布局显示(无图片)。我怎么能做到这一点?因为看起来很复杂。我应该检查适配器中的最后一个消息类型(看起来不那么可靠的解决方案)?或者添加并稍后检查我的消息对象中的其他字段?任何例子或帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我假设你有一个这样的Message类:

class Message {
    public String text;
    public String avatar;
}

因此,在getView方法中,您可以轻松检查上一项:

ArrayList<Message> mMessages;
...
public View getView (int position, View convertView, ViewGroup parent){      
    if( convertView == null ){
         if (position > 0 && mMessages.get(position-1).avatar.equal(mMessages.get(position).avatar)){
              // set layout for second message style
              convertView = inflater.inflate(R.layout.list_without_avatar, parent, false);
         } else {
              // set layout for the first message style
              convertView = inflater.inflate(R.layout.list_with_avatar, parent, false);
         }             
    }
    ...
    return convertView;
}

希望有所帮助!