java - 为每个列表项创建自定义 View 的最佳方法

标签 java android performance implementation

当我审查和原型(prototype)化我的 Android 项目时,我注意到有一个 View ,其中包含非常定制的项目列表。我已经弄清楚了我计划使用的大部分工具,但我需要一些建议。

我有一个项目列表,其中可以包含照片、右侧的一些文本、底部的图像以及下面的更多文本。我知道非常令人困惑。其中每一个都可能出现在一个项目中。唯一永远存在的就是标题。

所以我的问题 - 创建每个自定义列表项 View 的最佳方法是什么?我想我必须使用这个getView创建每个 View 。但是,在创建每个 View 时,最好是 1) 动态创建 View 并添加图像(例如,如果存在),或者 2) 创建包含所有可能元素的 xml 文件并根据项目隐藏它们?

最佳答案

就性能而言,#2 更好,因为您将能够重用 ListView 为适配器提供的 ConvertView 作为 getView() 参数。为了允许 ListView 平滑滚动,您必须避免在 getView() 调用期间创建任何 View 。

您可以在 this sample from the Developer Guide 中找到 getView() 的高效实现。有两点很重要:

  • 重用convertView(如果可用)
  • 使用附加到 View 的 ViewHolder 以避免在每次调用 getView() 时再次查找 subview

关于java - 为每个列表项创建自定义 View 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101695/

相关文章:

c# - WPF如何优化布局/渲染周期?

java - 将 Java 匿名回调类转换为 C#

JavaFX 从 Controller 获取场景

java - 使用 NexusDialog 在 fragment 中创建自定义元素

java - 在 Edittext 上使用 setText 的 RxTextView.textChanges

java - 我应该为 Android 中的日期使用什么类?

Java - toString 到 Color

java - 如何在httpurlconnection android中添加参数

设备上的 Android Studio 慢速调试

xml - 如何加快从磁盘加载 XML 文档的速度?