SuperAPI AI 工具集

cometchat-android-v6-kotlin-customization

通用与其它

查看项目

更新于 10-15 20:14

技能介绍

用途:面向 CometChat Android UIKit v6 的 Kotlin Views 组件定制,是 v5 DataSource/ChatConfigurator 模式的 v6 替代方案。依赖 com.cometchat:chatuikit-kotlin-android:6.x(配套 calls-sdk-android:5.x),官方文档见 https://www.cometchat.com/docs/ui-kit/android/v6/overview。

主要能力:BubbleFactory 为抽象类,每个子类处理一种消息类型,通过 getCategory()/getType() 指定类型;createContentView() 在 ViewHolder 创建时调用(此时无消息),bindContentView() 每次显示时调用,消息相关逻辑须放在 bind 方法。可覆盖的插槽包括内容、头像、头部、回复、底部、状态、线程、页脚,均有 create/bind 配对。重写 createBubbleView()/bindBubbleView() 可整体替换气泡,返回非空时其余插槽方法被忽略。getBubbleStyle() 在三级样式链中优先级最高。onViewRecycled() 用于清理资源。BubbleViewProvider 是更简单的接口,可跨所有消息类型覆盖单个插槽,如 setLeadingViewProvider() 定制头像。

使用方式:用 messageList.setBubbleFactories(listOf(...)) 注册自定义工厂;内置类型不存入工厂表,未匹配时回退 InternalContentRenderer,因此只传自定义工厂是安全的,但该调用会替换整个自定义工厂集合。注意 messageList.bubbleFactories 属性与 removeBubbleFactory() 均非公开 API。发送自定义消息应使用 CometChatUIKit.sendCustomMessage(),而非原始 SDK 的 CometChat.sendCustomMessage()。附件选项用 addAttachmentOption() 追加、setAttachmentOptions() 设置自定义列表,二者均保留内置选项。长按菜单用 addOptions() 追加、setOptions() 替换默认项。

限制:文档中的 MessageTemplate、getDataSource()、getMessageTemplates()、setTemplates() 等符号在 GA v6 Kotlin Views 源码中未找到,可能无法编译,新代码应优先使用 BubbleFactory/BubbleViewProvider。使用前请对照已安装包或源码核验符号。