美文网首页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