SuperAPI AI 工具集

cometchat-flutter-v6-theming

通用与其它

查看项目

更新于 10-15 20:14

技能介绍

用途:定制 CometChat Flutter UIKit v6 所有组件的视觉外观,包括颜色、间距与文字样式。

主要能力:主题系统分三层,通过 Flutter 的 ThemeExtension 解析——CometChatColorPalette(颜色,含 primary、neutral、alert、background、text、icon、button、border 等令牌)、CometChatSpacing(间距令牌)、CometChatTypography(heading1-4、body、caption1-2、button、link、title 等文字样式)。通过静态辅助方法获取:CometChatThemeHelper.getColorPalette(context)、getSpacing(context)、getTypography(context)。

使用方式:将 CometChatColorPalette 作为 ThemeExtension 注册到 ThemeData 的 extensions 中,可只覆盖需要的字段,其余回退默认值;同时配置 theme 与 darkTheme 以支持深色模式。深色模式由 CometChatThemeMode.mode 控制,可设为 ThemeMode.system、light 或 dark。每个组件都有对应的 CometChat{Component}Style 类,支持 merge() 合并默认样式与覆盖项,merge 为 null 感知,仅非空字段替换基础值。

性能与限制:主题值应在 didChangeDependencies() 中缓存,不可在 build() 或 build 调用的方法中查询,否则键盘动画期间每帧触发 InheritedWidget 查找,导致 44-95ms 构建耗时;用 _themeInitialized 标志防止重复初始化。CometChatColorPalette 无 const 构造函数,不能写 const CometChatColorPalette(...)。CometChatThemeMode.mode 是静态字段,修改不会触发重建,需同时改 ThemeData brightness 或对 MaterialApp 调用 setState。扩展 primary 色由 primary 与白/黑混合自动生成。避免硬编码颜色,使用主题令牌;用 MediaQuery.sizeOf(context) 替代 MediaQuery.of(context).size。

适用场景:需要统一品牌配色、支持明暗主题或按组件微调样式的 Flutter 聊天界面开发。具体安装命令与版本要求资料未提供。