我在我的应用程序中将文本范围与ImageSpan和文本一起使用。文本被异步解析,并且相应地插入/替换了ImageSpans。可能有一个或多个ImageSpans,或者根本没有。

如何预先计算包含ImageSpans的最终文本所占的大小?

我遇到的问题是,当我最终在RecyclerView项中更新TextView时,整个视图“跳了起来”。您可以想象,在不同时间设置的许多列表项,列表似乎在跳跃。

android - 加载数据后,Recyclerview项目高度的变化-LMLPHP

我想通过预先设置TextView的大小来消除“跳转”,因为在显示文本时,项目的大小不会更改,列表不会跳转。

任何帮助或建议,将不胜感激。

最佳答案

由于我们不知道要在完成之前加载的文本大小,因此我们唯一的选择是保留一些保留给该文本的区域。android - 加载数据后,Recyclerview项目高度的变化-LMLPHP

可以通过将TextView或其父项(不是已知文本的父项)固定为固定大小来轻松实现。




还建议这些:


使文本为ellipsized
设置一个占位符。


占位符可以是简单的伪文本,也可以是更优雅的东西,如下图所示。

android - 加载数据后,Recyclerview项目高度的变化-LMLPHP

您可以找到该库here

09-28 09:39