假设我有一个带有LinearLayout的ImageView和TextView列表。 现在我使用简单的ArrayAdapter扩展,将Strig [] []作为一个双字符串数组(每个条目包含String [2],其中第一个字符串是图像的uri,第二个是文本。我重写getView以显示图像和文本,重新命名视图,当然:-)。 然而,由于图像加载,即使从资源可能很慢,我在异步任务中这样做,这意味着我有一个默认图像加载,我使用:startLoading(它是我的方法),它使用ImageView和Uri,并且一次图像准备就绪,将其放在图像视图中。
然而有时候,因为它是一个列表,如果图像尚未加载,而且我正处于进程的中间,那么在停止加载时这是值得的,以防万一我正在加载图像的行不再可见。
由于视图被回收,我无法检查ImageView是否可见,因为它可能是可见的但是有一个不同的Drawable ...有没有办法让我知道我的线路在无效和不可见?是否有一个简单的方法或shell我需要开始使用标志和标记模式和类似的东西发现我的行不再有效?
答案 0 :(得分:1)
我所做的是基于ListView如何管理它的视图。
由于ListView确实使用了一组有限的视图,并且可能通过getView()方法的convertView参数传递给我们的适配器,因此实现了以下内容: