IM中群消息发送者信息刷新方案

前言

在IM项目(Android)中,聊天页面,进入会展示历史消息,而历史消息存下来的发送者信息可能并不是最新的,所以需要去刷新数据。单聊场景只需要刷新对方一个人信息,实现较为简单。但是到群聊,发送者众多,不可能每次进入页面都去获取全部成员的信息(数量大,获取缓慢),所以需要制定策略去实现好的效果。

阅读更多

IM中按名称拼音字母分组排序

前言:

在IM项目(Android项目)中,例如群成员列表,通讯录(仿微信)等等。往往会按名称首字母分组并排序。从而方便用户检索。

阅读更多

IM项目中群成员获取与缓存策略

前言

在IM项目(Android)中,我们需要获取群成员,往往数据较大,获取缓慢,所以需要做个缓存,提升用户体验。

阅读更多

小故事:未熟的果实

故事

某个场景。

阅读更多

IM项目中的自定义小表情实现

前言

在im项目(Android)中,用户发消息,喜欢在文字中嵌入一些小表情,以表达发送者当时的情感。除了系统输入法自带的emoji表情(emoji其实是特殊的文字)外。项目希望带一些更漂亮,带产品特色文化的自定义小表情(小图片)。

阅读更多

TextView识别文本中的超链接并能点击跳转

需求:

如题所诉。需要识别出文本中的链接,并显示成超链接的UI样式。点击能够跳转打开网页(最好是自己app内部的WebView。)

阅读更多

ClickableSpan的一点点摸索

ClickableSpan

ClickableSpan 用来实现 TextView里的文字局部的高亮和点击事件。

阅读更多

Fragment 监听返回按键

监听返回键

Android开发中,我们用fragment承担页面UI主要的逻辑,简化activity逻辑。有个场景,fragment需要监听返回键。但fragment不像activity能感知物理按键。

阅读更多

LiveData实现消息总线

消息总线

Android开发中,我们常遇见不同页面之间要保持数据同步。送最初的onActivityResult,到后面的第三方库EventBus,RxBus,LiveEventBus。现在我们需要利用livedata自己写一个简单的消息总线。

阅读更多

kotlin使用let报java.lang.NoClassDefFoundError

问题阐述

kotlin 运行这段代码报java.lang.NoClassDefFoundError错误(表示运行中找不到类的定义)。如下代码:

阅读更多