Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
会话页面总配置项
Link copied to clipboard
会话列表界面操作的监听器。
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
融云主题管理器 用于管理融云 IM SDK 的主题切换和资源适配,支持多主题动态切换。
核心功能
- 内置主题:提供传统主题和欢快主题,欢快主题自动跟随系统深浅色模式
- 自定义主题:支持开发者扩展和注册自定义主题,支持深浅色模式和主题叠加
- 系统跟随:自动跟随系统深浅色模式切换(欢快主题及自定义主题)
- 动态资源:提供动态资源获取方法,根据当前主题和深浅色模式自动选择合适的资源
- 自动应用:通过 Activity 生命周期回调自动应用主题到所有页面
- 主题监听:支持监听主题切换事件,方便进行自定义处理
重要说明
关于系统深浅色模式切换:在部分机型上,系统设置切换深浅色模式后,返回 APP 可能无法及时切换到对应的模式。 这是由于系统原因导致,当前 APP 通过系统方法获取的深浅色状态仍然是旧值,需要重启 APP 才能生效。 解决方案(推荐):如果您的应用使用了 AppCompat 库,建议在 Application 中通过
AppCompatDelegate.setDefaultNightMode(nightMode) 来设置应用的深浅色模式, 这样可以保证深浅色模式的及时切换。 // 在 Application 的 onCreate 中设置
// 跟随系统
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
// 或强制使用浅色模式
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
// 或强制使用深色模式
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
Content copied to clipboard
快速开始
// 1. 切换到欢快主题(自动跟随系统深浅色)
IMKitThemeManager.changeInnerTheme(context, IMKitThemeManager.LIVELY_THEME);
// 2. 切换到传统主题
IMKitThemeManager.changeInnerTheme(context, IMKitThemeManager.TRADITION_THEME);
// 3. 添加自定义主题(支持深浅色模式)
IMKitThemeManager.addTheme("CUSTOM_THEME",
R.style.MyCustomLightTheme, // 浅色模式样式
R.style.MyCustomDarkTheme // 深色模式样式
);
// 4. 切换到自定义主题(基于欢快主题)
IMKitThemeManager.changeCustomTheme(context, "CUSTOM_THEME", IMKitThemeManager.LIVELY_THEME);
// 5. 在代码中动态获取主题资源
int bgResId = IMKitThemeManager.dynamicResource(
context,
R.attr.rc_conversation_bg, // 主题属性
R.drawable.rc_old_bg // 默认资源
);
view.setBackgroundResource(bgResId);
// 6. 获取当前主题
String currentTheme = IMKitThemeManager.getCurrentThemeName();
// 7. 判断当前主题类型
if (IMKitThemeManager.TRADITION_THEME.equals(currentTheme)) {
// 传统主题
}
Content copied to clipboard
Link copied to clipboard
Link copied to clipboard
SDK 配置入口。 应用可以通过该类更改各页面的配置。 注意:需要在 init() 之前调用。