输入区域
IMKit 的输入区域是在 RongExtension 统一创建和控制的,支持自定义输入模式、自定义扩展区域(插件)、以及自定义表情。
下图输入区从左至右依次是语音/文本切换按钮、内容输入框、表情面板按钮、扩展面板按钮。

修改输入栏组合模式
IMKit 输入栏提供语音/文本切换、内容输入、扩展区域功能,并支持修改输入组合模式。例如,您可以移除语音/文本切换按钮和扩展面板,仅保留内容输入功能。
目前 提供了多种排列组合模式:
| 组合模式 | XML 资源 | 枚举 |
|---|---|---|
| 语音/文本切换功能+内容输入功能+扩展面板 | SCE | STYLE_SWITCH_CONTAINER_EXTENSION |
| 语音/文本切换功能+内容输入功能 | SC | STYLE_CONTAINER |
| 扩展面板+内容输入功能 | EC | --- |
| 内容输入功能+扩展面板 | CE | STYLE_SWITCH_CONTAINER |
| 内容输入功能 | C | STYLE_CONTAINER |
如需全局修改,可通过修改全局默认输入模式实现。请复制 rc_conversation_fragment.xml 的全部内容,在应用程序项目的 res/layout/ 下创建同名文件,找到 RongExtension 组件后添加 app:RCStyle="SCE",更改默认输入显示形式。
如需动态修改,需要继承 IMKit 的 ConversationFragment 实现自定义的会话页面 Activity,在 ConversationFragment 子类中重写 setInputPanelStyle() 方法,该方法接受的枚举值可参见上表。
public class ChatFragment extends ConversationFragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRongExtension.getInputPanel().setInputPanelStyle(STYLE_CONTAINER_EXTENSION);
}
}
隐藏输入栏中的表情面板按钮
IMKit SDK 从 5.3.2 版本开始提供该功能。
在 App 不需要提供表情输入功能时,可通过 IMKit 全局配置隐藏进入表情面板的按钮。

在进入会话页面前隐藏展开表情面板的按钮。
RongConfigCenter.featureConfig().setHideEmojiButton(true);
输入区域扩展面板
融云将点击输入栏 + 号按钮时展示的面板称为扩展面板,扩展面板上展示当前可用的插件。

扩展面板插件列表
IMKit 完整插件列表如下所示。扩展面板中默认仅包含内置插件(图库、文件)。如需其他插件,请集成 IMKit 提供的插件库。
| 所属模块名称 | 插件名称 | 说明 |
|---|---|---|
| 内置插件 | ImagePlugin | 图库插件 |
| 内置插件 | FilePlugin | 文件插件 |
LocationExtensionModule | DefaultLocationPlugin | 仅包括位置功能的插件(未开启实时共享时使用),集成 locationKit 库可用。 |
LocationExtensionModule | CombineLocationPlugin | 包括位置和实时位置共享两个功能的插件,集成 locationKit 库可用。 |
SightExtensionModule | SightPlugin | 小视频插件,集成 sight 库后可用。 |
ContactCardExtensionModule | ContactCardPlugin | 名片插件,集成 contactcard 库后可用。 |
RecognizeExtensionModule | RecognizePlugin | 语音输入插件,集成 recognizer 库后可用。 |
RongCallModule | AudioPlugin | 语音通话插件,集成 CallKit 后可用。 |
RongCallModule | VideoPlugin | 视频通话插件,集成 CallKit 后可用。 |
添加语音输入转文字插件
IMKit 基于讯飞 SDK 开发了语音转文字插件库 recognizer。IMKit 集成 recognizer 库后,在扩展面板会自动生成语音输入功能入口。用户点击语音输入可以将录入的语音转成文字并展示在输入栏。
-
下载 IMKit 源码,下载后将
recognizer目录拷贝到您应用工程中。 -
在工程根目录下的
settings.gradle中增加配置。Groovyinclude ':recognizer' -
在应用的
build.gradle中添加依赖。Groovy// 插件版本需要与主 SDK 版本保持一致。
implementation project(path: ':recognizer') -
在进入会话页之前,通过
RongExtensionManager,向 IMKit 的输入区域RongExtension中注册语音转文字模块RecognizeExtensionModule,该模块会向扩展面板中添加语音输入插件RecognizePlugin。建议在应用生命周期内统一配置。JavaRongExtensionManager.getInstance().registerExtensionModule(new RecognizeExtensionModule());
添加其他插件
要了解如何在扩展面板添加其他插件,请参阅以下文档: