代码之家  ›  专栏  ›  技术社区  ›  Pierre

加载数据后,RecyclerView项高度更改

  •  2
  • Pierre  · 技术社区  · 7 年前

    在我的应用程序中,我将文本跨度与ImageSpan和文本一起使用。文本是异步解析的,图像跨度也相应地被插入/替换。可能有一个或多个ImageSpans,或者根本没有一个。

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

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

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

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

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

    我遇到的问题是,当我最终更新recyclerview项中的textview时,整个视图会“跳转”。你可以想象,在不同的时间设置了很多列表项,列表看起来会跳跃。

    enter image description here

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bertram Gilfoyle    6 年前

    由于我们不知道文本在加载完成之前的大小,因此我们唯一的选择是为该文本保留一些区域。

    这可以通过使textView或它的某个父级(它不是已知文本的父级)固定大小来轻松完成。



    还建议:

    占位符可以是简单的虚拟文本,也可以是更优雅的内容,如下图所示。

    您可以在这里找到这个库

    XT。 Illustration: before and after loading

    这可以通过使textView或它的某个父级(不是已知文本的父级)固定大小来轻松完成。



    还建议:

    占位符可以是简单的虚拟文本或更优雅的内容,如下图所示。

    Skeleton library preview

    你可以找到这个图书馆 here .