会话列表事件监听

更新时间: 2025/05/28 17:08:15

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 为会话列表项数据实体类,其成员参数见下表。

    参数 类型 说明
    conversation NIMConversation 会话信息。
    targetId String 会话接收者 ID,用户 ID 或者群 ID 。
    haveBeenAit bool 是否有未读的被@的信息。

示例代码

  • 全局配置,全局生效。

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