【问题标题】:lazy list in FragmentFragment 中的惰性列表
【发布时间】:2023-12-09 17:12:01
【问题描述】:

我正在尝试在片段内实现带有异步图像加载的 ListView。
为此,我取了Fedor's LazyList代码。
代码有效,但是加载的图像直到“将它们滚动出”可见区域并再次“滚动”后才会显示。这意味着只有在加载图像后在列表项上再次调用“getView()”时才会更新图像。
我怀疑原因是为加载的图像调用的“activity.runOnUiThread()”不会触发在引用的 Activity 中重绘 Fragment。
Fragment 类没有这样的方法。
我尝试在 imageView 上执行“postInvalidate()”,但这没有任何效果。
如何让它发挥作用?

【问题讨论】:

  • 我可以知道你在哪里使用 Fragment 吗?

标签: android list lazy-loading fragment


【解决方案1】:

我认为您在 getView() 方法中的 setTag() 方法中犯了错误。

holder.imageView.setTag(loadURL);
imageLoader.DisplayImage(loadURL, activity, holder.imageView);

SetTag() 和 DisplayImage() 都应该具有相同的 Image URL 值。

【讨论】:

  • 你说得对,我已经监督了那行代码,非常感谢!
  • @didi_X8 我过去也犯过同样的错误。这就是为什么乍一看你的问题,我明白了。我花了大约 2 天时间才发现这个问题。
  • 我明白了。互联网合作如何提高生产力的完美例子!
  • @didi_X8 你应该阅读我关于*的话,因为我有同样的感觉:goo.gl/1Gmzw