gpt4 book ai didi

android - 懒加载ListView(不是那种懒)

转载 作者:行者123 更新时间:2023-11-30 02:54:48 25 4
gpt4 key购买 nike

在您将我的问题标记为重复之前,我并不是在谈论将图像延迟加载到 ListView 中。我想要做的是懒惰地加载(子) View 。让我解释一下...

我有一个 ListView,我想用 TextView 填充它。 TextViews 使用 ImageSpans 显示文本。如果我输入包含许多 ImageSpans 的文本,渲染会花费很多时间,这会严重降低 ListView 的滚动性能。

为了解决这个问题,我想显示一个加载微调器,直到 TextView 准备就绪,就像我们为 ImageView 所做的那样。问题是 ImageView 显示静态图像,TextView 需要呈现其内容。我考虑过在位图上绘制 TextView 而不是显示该位图,但我无法控制 TextView 的文本,我担心它最终可能会超过最大位图大小。我想出的所有其他方法都涉及从 android 中受限制的非 ui 线程调用 View 的 draw(Canvas) 方法。所以我的问题是如何懒惰地呈现 ListView 的 View ?这可能吗?

最佳答案

我认为这是可行的。

  1. 内部适配器 getView() 方法创建带有进度指示器的 View 。
  2. 将工作线程与将对位图进行重绘的 View 相关联 (AsyncTask)。
  3. AsyncTask 完成绘制后,您可以在 AsyncTask.onPostExecute() 中更新 ImageView,它在 UI 线程中调用。

查看本教程。这是关于一个类似的问题。 http://developer.android.com/training/displaying-bitmaps/process-bitmap.html

您可以创建自己的 View 类来封装此异步加载。请注意 ListView 会回收离开屏幕的 View 实例,这会增加一些复杂性。

关于android - 懒加载ListView(不是那种懒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23460749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com