Android - 当 imageview 或 layout 出现无屏幕时检测

Android - Detect when imageview or layout appear no screen

我有一个 activity 从 Web 服务获取数据。 Web 服务的输出由多组一个 Web URL 和一些文本组成。 URL 指向一个图像。每个集合都通过创建一个包含图像视图和文本视图的线性布局来显示。因此,对于 200 个集合,我将有 200 个布局、200 个图像视图和 200 个文本视图。我知道列表视图会是更好的解决方案,但我在项目中走得太远了,现在无法更改它。

目前,我在 activity 显示之前下载了所有图像。我下载了大约 200 张图片,将来可能会增加到 1000 多张。 我只想在图像视图出现在屏幕上时才下载图像。我正在考虑的方法是创建一些侦听器或事件,以便一旦图像视图或布局出现在屏幕上,下载就会开始。我为此进行了很多搜索,但找不到好的解决方案。 我的问题是创建侦听器未开始下载。

一些解决方案建议延迟加载,但这仍然意味着加载所有图像,这不适合下载容量有限的用户。

编辑:我不想加载所有图像,只加载出现在屏幕上的图像。每次用户滚动时,屏幕上出现的新图像视图也会开始下载。

我最终使用了一种不同且更简单的方法,方法是遵循@Akos 对此 link 的解决方案来检测滚动视图的结束。 activity 启动后,我加载了 10 个布局。滚动视图结束后,我会显示一个进度对话框并加载 10 个以上的布局。