美文网首页Android开发
接入融云IM-加号区域部分功能固定外展

接入融云IM-加号区域部分功能固定外展

作者: 你的益达233 | 来源:发表于2022-05-12 16:29 被阅读0次

一、前言

加号区域功能外展还是很常用的,你看下主流的社交软件都外展的,方便用户使用。默认融云是不支持的,只得我们自己做

二、效果图

外展.png

三、解决思路

找到相应的布局(rc_extension_input_panel.xml)添加你外展的控件。然后自定义类继承ConversationFragment,在自定义类中的onViewCreated里面find你的控件,写你的点击事件业务代码

四、参考示例代码

 /**
 * @desc : 处理外展的加号内容
 * @author : congge on 2022-05-09 15:01
 **/
private fun dealOutExtension(chatWindowBean: ChatWindowBean?){
    //只用SC模式:语音/文本切换功能+内容输入功能
    rongExtension.inputPanel.setInputPanelStyle(InputPanel.InputStyle.STYLE_SWITCH_CONTAINER);
    rcEmojiBtn = mRongExtension.inputPanel.rootView.findViewById(R.id.input_panel_emoji_btn)
    rcEmojiBtn?.visibility = View.GONE
    rcAddBtn = mRongExtension.inputPanel.rootView.findViewById(R.id.input_panel_add_btn)
    rcAddBtn?.visibility = View.GONE
    ivChatOutPic = mRongExtension.inputPanel.rootView.findViewById(R.id.iv_chat_out_pic)
    ivChatOutCall = mRongExtension.inputPanel.rootView.findViewById(R.id.iv_chat_out_call)
    ivChatOutGift = mRongExtension.inputPanel.rootView.findViewById(R.id.iv_chat_out_gift)
    ivChatOutEmoji = mRongExtension.inputPanel.rootView.findViewById(R.id.iv_chat_out_emoji)
    ivChatOutAdd = mRongExtension.inputPanel.rootView.findViewById(R.id.iv_chat_out_add)

    chatWindowBean?.let {
        ivChatOutCall?.visibility = if (it.chatMediaAbduceShowState == 1){
            View.VISIBLE
        } else {
            View.GONE
        }
    }
    if (isKefu){
        ivChatOutCall?.visibility = View.GONE
        ivChatOutGift?.visibility = View.GONE
    }
    //点击照片
    ivChatOutPic?.setOnClickListener {
        if (!mRongExtension.pluginBoard.pluginModules.isNullOrEmpty()){
            for (index in mRongExtension.pluginBoard.pluginModules.indices){
                if (mRongExtension.pluginBoard.pluginModules[index] is MyImagePlugin){
                    mRongExtension.pluginBoard.pluginModules[index].onClick(
                        this,
                        rongExtension,
                        index
                    )
                }
            }
        }
    }
    //点击音视频通话
    ivChatOutCall?.setOnClickListener {
        //点击音视频的不用加号拓展项,因为拓展项中的音视频可能没有
        if (activity is ChattingActivity){
            (activity as ChattingActivity).dealClickChatCall()
        }
    }
    //点击礼物
    ivChatOutGift?.setOnClickListener {
        if (!mRongExtension.pluginBoard.pluginModules.isNullOrEmpty()){
            for (index in mRongExtension.pluginBoard.pluginModules.indices){
                if (mRongExtension.pluginBoard.pluginModules[index] is MyGiftPlugin){
                    mRongExtension.pluginBoard.pluginModules[index].onClick(
                        this,
                        rongExtension,
                        index
                    )
                }
            }
        }
    }
    //点击表情
    ivChatOutEmoji?.setOnClickListener {
        rcEmojiBtn?.performClick()
    }
    //点击加号
    ivChatOutAdd?.setOnClickListener {
        rcAddBtn?.performClick()
    }

}

这里只给出自定义的ConversationFragment在onViewCreated如何findView和点击事件。其他操作请看我的解决思路。还有问题可以私信我。

相关文章

网友评论

    本文标题:接入融云IM-加号区域部分功能固定外展

    本文链接:https://www.haomeiwen.com/subject/vmxeurtx.html