SuperAPI AI 工具集

cometchat-android-v6-compose-customization

通用与其它

查看项目

更新于 10-15 20:14

技能介绍

用途:自定义 CometChat Compose 组件,覆盖消息气泡渲染、按槽位单独覆盖,并应用 @Immutable 样式类。适用于为特定消息类型创建自定义气泡、覆盖头像/头部/底部/内容等单个槽位、应用自定义样式或整体替换某类型气泡布局。不适用于 Kotlin Views 自定义、全局主题配色修改或数据层扩展。

主要能力:BubbleFactory 是 com.cometchat.uikit.compose.presentation.shared.messagebubble 下的接口,每个实现处理一种消息类型,必须实现 getCategory() 与 getType()。getContentView() 返回自定义内容 Composable;getBubbleView() 返回非空时整体替换气泡并忽略其他槽位方法。槽位方法包括 getContentView、getLeadingView、getHeaderView、getReplyView、getBottomView、getStatusInfoView、getThreadView、getFooterView,均返回 (@Composable () -> Unit)?,返回 null 用默认。getBubbleStyle() 可覆盖样式,工厂样式在三级样式链中优先级最高;onDispose() 用于清理。

使用方式:在 CometChatMessageList 传入 bubbleFactories = listOf(...),内部按 "category_type" 转为映射。也可直接在 CometChatMessageList 上传入 leadingView、headerView、replyView、contentView、bottomView、statusInfoView、threadView、footerView 等槽位 lambda 做跨类型覆盖。槽位解析优先级为:显式槽位 lambda > BubbleFactory 槽位方法 > 内部默认渲染。样式类统一用 Companion.default() 具名参数覆盖,不要直接调用 data class 构造器;部分样式含嵌套样式类。还支持 loadingView、emptyView、errorView 自定义状态视图。

限制:BubbleFactory 是接口需实现而非继承抽象类;getCategory() 与 getType() 必填;getBubbleView() 非空时忽略其他槽位;样式类构造器需全部参数,须用 default();BubbleFactory 负责 UI 渲染,与负责数据获取的 DataSource 是不同层,勿混淆。v5 到 v6 的迁移对应关系资料已给出。具体收费、价格与平台信息暂未提供。