小编典典

每行具有不同布局的Android ListView

all

我正在尝试确定拥有单个 ListView 的最佳方式,该 ListView 包含每行的不同布局。我知道如何创建自定义行 +
自定义数组适配器来支持整个列表视图的自定义行,但是如何在 ListView 中实现许多不同的行样式?


阅读 135

收藏
2022-03-31

共1个答案

小编典典

由于您知道您将拥有多少种布局类型 - 可以使用这些方法。

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

getItemViewType(int position)- 根据位置返回您应该使用哪种布局类型的信息

然后,仅当布局为 null 并使用getItemViewType.

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

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

  • 将视图存储在名为ViewHolder. 它会提高速度,因为您不必findViewById()每次都在getView方法中调用。请参阅API 演示中的 List14
  • 创建一个通用布局,该布局将符合所有属性组合并在当前位置没有它的情况下隐藏一些元素。

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

2022-03-31