我的应用程序中有一个聊天屏幕,我当然使用recyclerView
。为了在消息中显示Emoji,我使用ImageSpan,并且一切正常,唯一的问题是性能-当消息中包含20-30个Emoji时,我的RecyclerView
的{{1}}需要花费很多时间。我尝试了onBindViewHolder
,但没有发现任何变化,因为问题出在StaticLayout
中。
我不知道它在做什么样的工作,但是它遍历了我的所有Span,并且需要很多时间。有什么办法解决这个问题吗?
我花了很多时间检查Telegram源代码,这些家伙都在做同样的事情-使用ImageSpan for Emojis。
UPD::我在RecyclerView中绑定数据之前创建SpannedStrings。