会话列表事件监听

更新时间: 2024/09/27 10:50:00

IM UIKit 会话列表列表模块(nim_conversationkit_ui)针对一些通用的点击事件通过参数对外暴露。您可以在这些通过传入方法实现自己的点击事件逻辑,如果您不传入对应的参数方法,将会运行默认逻辑。如果我们提供的参数不满足您的需求,也可以通过修改源码的方式实现自己的业务需求。

所有回调参数返回值为 bool,您在实现的时候如果返回 true,将不会走默认实现,返回 false 则会先执行您注入的实现,然后执行默认实现。

通过传入方法参数

会话列表项点击事件

通过ConversationItemConfig进行事件配置,设置会话列表界面的点击事件。

  • 方法说明
方法名称
方法说明 参数说明
itemClick 会话列表界面会话项点击事件 itemClick的参数如下:
  • data:会话列表 Item 数据,类型为ConversationInfo,代表 会话列表 的会话列表项数据。ConversationInfo详情参见下文的ConversationInfo 说明
  • position:被点击的会话列表项 Item 在列表中的位置
itemLongClick 会话列表界面会话项长按事件 itemLongClick的参数如下:
  • data:会话列表 Item 数据,类型为ConversationInfo,代表 会话列表 的会话列表项数据。ConversationInfo详情参见下文的ConversationInfo 说明
  • position:被点击的会话列表项 Item 在列表中的位置
avatarClick 会话列表界面会话项图标点击事件 avatarClick的参数如下:
  • data:会话列表 Item 数据,类型为ConversationInfo,代表 会话列表 的会话列表项数据。ConversationInfo详情参见下文的ConversationInfo 说明
  • position:被点击的会话列表项 Item 在列表中的位置
avatarLongClick 会话列表界面会话项图标长按事件 avatarLongClick的参数如下:
  • data:会话列表 Item 数据,类型为ConversationInfo,代表 会话列表 的会话列表项数据。ConversationInfo详情参见下文的ConversationInfo 说明
  • position:被点击的会话列表项 Item 在列表中的位置

下图中红框所示的单个消息区域即为一个会话列表 Item

会话Item.png

  • 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;
    }
  )
)
);
此文档是否对你有帮助?
有帮助
去反馈
  • 通过传入方法参数
  • 会话列表项点击事件
  • 示例代码