群会话列表自定义

在群会话列表的item中,最后消息(即item的content)的展示默认包含发送此消息的用户名字,如何去掉名字的显示?(而在PrivateConversationProvider的bindView中,UIConversation已经拼接了群成员的名称)
发布时间: 2018-04-20 17:03

回答:

继承GroupConversationProvider,重写bindview,利用UIConversation的get和set接口来实现:

@ConversationProviderTag(conversationType = "group", portraitPosition = 1)
public class CustomGroupConversationProvider extends GroupConversationProvider {
    @Override
    public void bindView(View view, int position, UIConversation data) {
        deleteNameIfContains(data);

        super.bindView(view, position, data);
    }

    /**
     * If conversation data contains user's name, delete the name from the data
     *
     * @param data conversation ui data
     */
    private void deleteNameIfContains(UIConversation data) {
        Spannable content = data.getConversationContent();

        String separator = ": ";
        int indexOf = content.toString().indexOf(separator);
        if (indexOf == -1) {
            return;
        }

        SpannableStringBuilder builder = new SpannableStringBuilder(content);
        builder.delete(0, indexOf + separator.length());

        data.setConversationContent(builder);
    }
}


我对此仍有疑问!继续追问