6_6-互动学堂场景-聊天室
1 功能概述
聊天室模块包括发言、回复、历史记录等功能。聊天室模块在UI、交互、功能上,相较于其他模块,都会更复杂更庞大。因此设计、搭建、维护一个聊天室,也是一件较为费时费力的事情。我们推荐直接使用保利威封装好的聊天室模块,该部分代码完全开源,支持直接使用,以及二次开发。
2 使用演示
互动学堂中聊天室是一个弹层布局,调用聊天室布局的构造函数、设置回调监听,并调用其初始化方法以完成初始化。在需要打开聊天室的时候,调用其show()方法显示即可。
// 聊天室布局构造、设置回调监听
private void initChatroomLayout() {
chatroomLayout = new PLVHCChatroomLayout(getContext());
chatroomLayout.setOnViewActionListener(new IPLVHCChatroomLayout.OnViewActionListener() {
// 聊天室布局的回调监听 ...
});
}
// 初始化数据
chatroomLayout.init(liveRoomDataManager);
// 需要显示的时候,调用show
chatroomLayout.show(getWidth(), smallScreenHeight, smallScreenLocation);详细的调用代码以及和其他模块的通信,请参考PLVHCToolBarLayout类中的代码调用。
3 接口介绍
互动学堂聊天室布局的接口定义为IPLVHCChatroomLayout,接口定义了可供外部直接调用的功能方法,以及需要外部响应的事件监听器。
提供给外部的可直接调用功能方法
需要外部响应的事件监听器
4 实现介绍
IPLVHCChatroomLayout的实现类是PLVHCChatroomLayout,包括聊天消息列表、发送信息输入框、表情布局、点赞布局等子布局。
4.1 初始化视图
初始化视图在聊天室布局构造时执行,包括聊天室子视图的创建、回调监听设置、消息列表初始化,以及表情列表初始化等。
4.2 初始化数据
初始化数据包括数据管理器IPLVLiveRoomDataManager的接收保存、PresenterIChatroomPresenter的注册和初始化、历史聊天数据的请求,以及聊天室 socket 的登录。
聊天室以 mvp 模式实现,具体交互逻辑在chatroomView内实现,详情可以参考代码块 聊天室 - MVP模式的view层实现。
Last updated
Was this helpful?