会话列表事件监听
更新时间: 2024/09/27 10:50:00
IM UIKit 会话列表列表模块(nim_conversationkit_ui
)针对一些通用的点击事件通过参数对外暴露。您可以在这些通过传入方法实现自己的点击事件逻辑,如果您不传入对应的参数方法,将会运行默认逻辑。如果我们提供的参数不满足您的需求,也可以通过修改源码的方式实现自己的业务需求。
所有回调参数返回值为 bool,您在实现的时候如果返回 true,将不会走默认实现,返回 false 则会先执行您注入的实现,然后执行默认实现。
通过传入方法参数
会话列表项点击事件
通过ConversationItemConfig
进行事件配置,设置会话列表界面的点击事件。
- 方法说明
方法名称 |
方法说明 | 参数说明 |
---|---|---|
itemClick |
会话列表界面会话项点击事件 | itemClick 的参数如下:
|
itemLongClick |
会话列表界面会话项长按事件 | itemLongClick 的参数如下:
|
avatarClick |
会话列表界面会话项图标点击事件 | avatarClick 的参数如下:
|
avatarLongClick |
会话列表界面会话项图标长按事件 | avatarLongClick 的参数如下:
|
下图中红框所示的单个消息区域即为一个会话列表 Item。
- ConversationInfo 说明
ConversationInfo
为会话列表项数据实体类,其成员参数见下表。
参数 |
类型 | 说明 |
---|---|---|
session |
NIMSession |
会话信息 |
friend |
NIMFriend |
当会话列表项为点对点消息类型时用于获取用户的备注昵称 |
user |
NIMUser |
当会话列表项为点对点消息类型时的用户信息 |
team |
NIMTeam |
当会话列表项为群组消息时的群组信息 |
isStickTop |
bool |
是否置顶(默认 false) |
mute |
bool |
是否禁止消息提醒(默认 false) |
示例代码
- 全局配置,全局生效
dart// 1. 通过全局 config 配置
ConversationKitClient.instance.conversationUIConfig = ConversationUIConfig(
itemConfig:ConversationItemConfig(
// 会话项点击回调
itemClick: (data, position){
return true;
},
// 会话项长按回调
itemLongClick: (data, position){
return true;
},
// 会话项头像点击回调
avatarClick: (data, position){
return true;
},
// 会话项头像长按回调
avatarLongClick: (data, position){
return true;
}
)
);
- 针对指定页面的配置,优先级高于全局配置
dart// 2. 针对指定页面的配置,优先级高于全局配置
ConversationPage(config: ConversationUIConfig(
itemConfig: ConversationItemConfig(
// 会话项点击回调
itemClick: (data, position){
return true;
},
// 会话项长按回调
itemLongClick: (data,position){
return true;
},
// 会话项头像点击回调
avatarClick: (data,position){
return true;
},
// 会话项头像长按回调
avatarLongClick: (data,position){
return true;
}
)
)
);
此文档是否对你有帮助?