首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从ListAdapter获取缓存视图

从ListAdapter获取缓存视图
EN

Stack Overflow用户
提问于 2012-01-24 04:08:49
回答 3查看 1.3K关注 0票数 0

当列表显示并滚动时,ListAdapter.getView()会创建一个新的列表项视图,或者重新使用传递给它的现有视图(以“convertView”的形式)来显示新的内容。

我想知道,是否有一种方法可以获得getView()创建的所有视图?例如,如果列表项视图需要在活动被销毁时释放一些资源,那么浏览所有列表项视图并告诉它们释放资源将是很好的。

EN

回答 3

Stack Overflow用户

发布于 2012-01-24 04:12:58

由于ListView是一个ViewGroup,你应该能够像下面这样在子视图上迭代:

代码语言:javascript
代码运行次数:0
运行
复制
for (int i=0; i < myListView.getChildCount(); i++) {
    View v = myListView.getChildAt(i);

    //Check to see if this view has the resource, then release it
}

在这个问题中需要一些类似的东西:Android: Access child views from a ListView

票数 0
EN

Stack Overflow用户

发布于 2012-01-24 04:14:52

它是java。您不能为了释放资源而命令应用程序或实例被真正销毁。使用finalize(),您只能提高java机器执行此操作的概率。

票数 0
EN

Stack Overflow用户

发布于 2012-01-24 04:35:54

除非您的适配器在此活动之外使用(在这种情况下,您并不知道您不再需要这些视图,对吗?),您对此适配器的唯一引用是在此活动中。这意味着如果您的活动是垃圾收集的,那么您的适配器将被垃圾收集,这意味着您的视图将被收集。我不会费心去优化它,除非你在这个行为上有一个可测量的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8977897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档