怎样设置聊天界面点击头像事件?

在聊天界面点击好友头像,触发指定事件。比如点击好友头像查看好友的详细信息. 包括4.x/5.x版本IMKit.
发布时间: 2015-07-02 16:22

回答:

IMKit 5.x版本:

RongConfigCenter.conversationConfig().setConversationClickListener(new ConversationClickListener() {
    /**
     * 用户头像点击事件
     *
     * @param context          上下文。
     * @param conversationType 会话类型。
     * @param user             被点击的用户的信息。
     * @param targetId         会话 id
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onUserPortraitClick(Context context, Conversation.ConversationType conversationType, UserInfo user, String targetId) {
        return false;
    }
    /**
     * 用户头像长按事件
     *
     * @param context          上下文。
     * @param conversationType 会话类型。
     * @param user             被点击的用户的信息。
     * @param targetId         会话 id
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onUserPortraitLongClick(Context context, Conversation.ConversationType conversationType, UserInfo user, String targetId) {
        return false;
    }
   /**
     * 消息点击事件
     *
     * @param context 上下文。
     * @param view    触发点击的 View。
     * @param message 被点击的消息的实体信息。
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onMessageClick(Context context, View view, Message message) {
        return false;
    }
      /**
     * 消息长按事件
     *
     * @param context 上下文。
     * @param view    触发点击的 View。
     * @param message 被点击的消息的实体信息。
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onMessageLongClick(Context context, View view, Message message) {
        return false;
    }
    /**
     * 消息超链接内容点击事件
     *
     * @param context 上下文。
     * @param link  超链接文本
     * @param message 被点击的消息的实体信息。
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onMessageLinkClick(Context context, String link, Message message) {
        return false;
    }
      /**
     * 当点击已读回执状态时执行
     *
     * @param context 上下文。
     * @param message 被点击消息的实体信息。
     * @return 如果用户自己处理了长按后的逻辑处理,则返回 true,否则返回 false,false 走融云默认处理方式。
     */
    @Override
    public boolean onReadReceiptStateClick(Context context, Message message) {
      return false;
    }
});


IMKit 4.x版本:

RongIM.setConversationClickListener(new RongIM.ConversationClickListener() {
    /**
     * 用户头像点击事件
     *
     * @param context          上下文。
     * @param conversationType 会话类型。
     * @param user             被点击的用户的信息。
     * @param targetId         会话 id
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onUserPortraitClick(Context context, Conversation.ConversationType conversationType, UserInfo user, String targetId) {
        return false;
    }
    /**
     * 用户头像长按事件
     *
     * @param context          上下文。
     * @param conversationType 会话类型。
     * @param user             被点击的用户的信息。
     * @param targetId         会话 id
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onUserPortraitLongClick(Context context, Conversation.ConversationType conversationType, UserInfo user, String targetId) {
        return false;
    }
   /**
     * 消息点击事件
     *
     * @param context 上下文。
     * @param view    触发点击的 View。
     * @param message 被点击的消息的实体信息。
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onMessageClick(Context context, View view, Message message) {
        return false;
    }
    /**
     * 消息超链接内容点击事件
     *
     * @param context 上下文。
     * @param link  超链接文本
     * @param message 被点击的消息的实体信息。
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onMessageLinkClick(Context context, String link, Message message) {
        return false;
    }
    /**
     * 消息长按事件
     *
     * @param context 上下文。
     * @param view    触发点击的 View。
     * @param message 被点击的消息的实体信息。
     * @return true 拦截事件; false 不拦截, 默认执行 SDK 内部逻辑
     */
    @Override
    public boolean onMessageLongClick(Context context, View view, Message message) {
        return false;
    }
});