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,接口定义了可供外部直接调用的功能方法,以及需要外部响应的事件监听器。

  1. 提供给外部的可直接调用功能方法

  1. 需要外部响应的事件监听器

4 实现介绍

IPLVHCChatroomLayout的实现类是PLVHCChatroomLayout,包括聊天消息列表、发送信息输入框、表情布局、点赞布局等子布局。

4.1 初始化视图

初始化视图在聊天室布局构造时执行,包括聊天室子视图的创建、回调监听设置、消息列表初始化,以及表情列表初始化等。

4.2 初始化数据

初始化数据包括数据管理器IPLVLiveRoomDataManager的接收保存、PresenterIChatroomPresenter的注册和初始化、历史聊天数据的请求,以及聊天室 socket 的登录。

聊天室以 mvp 模式实现,具体交互逻辑在chatroomView内实现,详情可以参考代码块 聊天室 - MVP模式的view层实现

Last updated

Was this helpful?