如何使用不同的项目布局优化ListView

时间:2010-08-09 17:08:26

标签: android listview

在我的listview中,我有不同布局的项目,实际上他们使用了几次子布局。我不能使用getViewTypeCount()和getItemViewType(),因为我不知道子布局将被使用多少次。有可能以某种方式优化getView()方法并使用它的convertView参数,还是每次都要对视图进行充气?

1 个答案:

答案 0 :(得分:2)

既然你知道有多少种类型的布局 - 可以使用这些方法。

getViewTypeCount() - 此方法返回信息列表中有多少行类型

getItemViewType(int position) - 根据位置

返回您应使用的布局类型的信息

然后,只有在布局为空时才对其进行膨胀,并使用getItemViewType确定类型。

查看this教程以获取更多信息。

更新:

为了实现您在评论中描述的结构优化,我建议:

  • 在名为ViewHolder的对象中存储视图。它会提高速度,因为您不必每次都使用findViewById()方法调用getView。见List14 in API demos
  • 创建一个符合所有属性组合的通用布局,如果当前位置没有,则隐藏一些元素。

我希望这会对你有所帮助。如果您可以提供一些XML存根以及您的数据结构和信息,您希望如何将其映射到行中,我将能够为您提供更精确的建议

相关问题