当前位置: 首页 > 知识库问答 >
问题:

在ViewHolder模式中将ViewHolder作为静态对性能至关重要吗?

马朝斑
2023-03-14

在ViewHolder模式中将ViewHolder作为静态对性能至关重要吗?

ViewHolder对象将每个组件视图存储在布局的标签字段中,因此您可以立即访问它们,而不需要重复查找它们。首先,您需要创建一个类来保存您准确的视图集。例如:

static class ViewHolder {
  TextView text;
  TextView timestamp;
  ImageView icon;
  ProgressBar progress;
  int position;
}

共有1个答案

杨星纬
2023-03-14

它对性能并不重要,关键是使用。如果viewholder类不是静态的-您必须提供父类的实例:

No enclosing instance of type Type is accessible. 
Must qualify the allocation with an enclosing instance of type Type 
(e.g. x.new A() where x is an instance of Type).
 类似资料:
  • 问题内容: 我正在尝试在我的Android应用中实现ViewHolder,但是我一直在获取ViewHolder不能解析为一种类型,而没有任何导入建议。有人知道如何解决这个问题吗? 问题答案: 这是因为a 不是 来自 Android SDK 的类,而是您自己创建的。根据我的发现,a 是一种存储视图(通常为ListView中的每行)用于较大区域的实现,因此它是一种帮助程序类和缓存机制。这是我在Andr

  • 我有一个实现自定义listview的简单代码段。 我的代码如下: 天气适配器。爪哇语: WeatherHolder.java: 我在so和其他网站上看到了这么多答案,我明白了listview的回收机制。 我还了解到,从 viewholder 那里,我们可以将子视图保存在适配器中,而不必多次调用 因此,这是为了优化。 但是我只有和 和< code>getTag在“这里”做什么?

  • 问题内容: 这是我的ArrayAdapter。我想通过遵循ViewHolder模式来提高效率: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html 但不确定如何做到这一点。 更新:ViewHolder模式 问题答案: ViewHolder本质上是一

  • 问题内容: 我的ListView自定义适配器(及其新实现的viewHolder)存在一些问题。我有一个ListView,每个项目都有一个复选框(这里没有新内容)。问题是,如果列表中有9个以上的项目,则当我选中第一个复选框时,将自动检查第10个复选框(第二个和第11个复选框相同),就像两个项目都有一个监听器一样(我相信情况确实如此)。 我在这里阅读了有关listView的位置问题,视图回收以及Vie

  • 问题内容: 这是我的自定义CursorAdapter: 这是否属于ViewHolder模式的约束?我不确定,因为这是CursorAdapter,那里没有。如果有任何问题或建议,请指出。 问题答案: 每次需要新行时都不会调用;如果它已经有一个,它将调用,因此创建的视图实际上已被重用。 就是说,正如 约瑟夫 在评论中指出的那样,您仍然可以使用ViewHolder以避免重复调用。 如果您仍然担心效率,那

  • 本文向大家介绍JavaScript 避免尝试/抓住对性能至关重要的功能,包括了JavaScript 避免尝试/抓住对性能至关重要的功能的使用技巧和注意事项,需要的朋友参考一下 示例 某些JavaScript引擎(例如,Node.jsIgnition + turbofan之前的Chrome的当前版本和较旧版本)无法在包含try / catch块的函数上运行优化器。 如果您需要处理关键性能代码中的异常