IM 即时通讯 (442)
Android (209)
- 初始化&链接 (8)
- 事件&监听处理 (7)
- 用户信息 (13)
- 会话列表 (16)
- 聊天会话 (26)
- 消息处理 (35)
- 自定义消息 (6)
- 音视频 (2)
- 推送&通知 (34)
- 扩展功能 (4)
- 第三方地图 (3)
- 依赖&配置 (9)
- 升级说明 (3)
- 其他 (43)
iOS (168)
- SDK 导入 (10)
- 连接 (8)
- 事件处理 (2)
- 用户信息 (3)
- 会话列表 (14)
- 聊天会话 (44)
- 消息处理 (26)
- 自定义消息 (8)
- 推送&通知 (19)
- 扩展功能 (5)
- 国际化 (4)
- 音视频 (3)
- 其他 (22)
Web (36)
Server (29)
如何自定义会话列表?
自定义会话列表,自定义未读消息显示,会话列表 adapter
发布时间: 2015-11-10 10:10
回答:
ConversationListFragment 增加了新接口:
public void setAdapter(ConversationListAdapter adapter) public ConversationListAdapter getAdapter();
用户可以设置自己的 adapter 实现对会话列表的自定义
使用方法:
继承并实现 adapter,自定义 adapter 中的布局及显示,例如:自定义会话列表未读消息数显示红点,不显示未读数目
public class ConversationListAdapterEx extends ConversationListAdapter { public ConversationListAdapterEx(Context context) { super(context); } @Override protected View newView(Context context, int position, ViewGroup group) { return super.newView(context, position, group); } @Override protected void bindView(View v, int position, UIConversation data) { if(data.getConversationType().equals(Conversation.ConversationType.DISCUSSION)) data.setUnreadType(UIConversation.UnreadRemindType.REMIND_ONLY); super.bindView(v, position, data); } }
3. 在实例化 ConversationListFragment 时,设置 adapter
ConversationListFragment listFragment = ConversationListFragment.getInstance(); listFragment.setAdapter(new ConversationListAdapterEx(RongContext.getInstance())); Uri uri = Uri.parse("rong://" + getApplicationInfo().packageName).buildUpon() .appendPath("conversationlist") .appendQueryParameter(Conversation.ConversationType.PRIVATE.getName(), "false") //设置私聊会话是否聚合显示 .appendQueryParameter(Conversation.ConversationType.GROUP.getName(), "false")//群组 .appendQueryParameter(Conversation.ConversationType.DISCUSSION.getName(), "false")//讨论组 .appendQueryParameter(Conversation.ConversationType.PUBLIC_SERVICE.getName(), "false")//公共服务号 .appendQueryParameter(Conversation.ConversationType.SYSTEM.getName(), "false")//系统 .build(); listFragment.setUri(uri);