1

这是我面临的问题。我正在开发一个自定义列表视图,其中单个列表视图项由多个文本和图像视图组成。但根据项目属性,有时需要 4 个 TextView,有时 1,有时 6.... 这个数字是动态的,我无法弄清楚如何开发一个合适的视图持有者模式。

我无法通过创建多个 TextView 并在必要时隐藏它们并显示来解决问题,因为我不知道每个项目需要多少个。

并且每次在 getView 中动态地膨胀它们并添加到布局中至少可以说是灾难性的:(

在持有人中拥有一个视图数组列表然后解决问题是一个可行的解决方案吗?

4

1 回答 1

0

我建议使用适配器视图类型:getItemViewType() 和 getViewTypeCount() 视图类型的数量取决于需要多少排列来表示单个列表项的所有不同外观。

因此,如果有 4 种不同的 UI 外观,那么您将拥有 4 种不同的视图类型。然后,您将拥有一个代表每种类型的 ViewHolder。然后在 中getView(),您只需检测位置表示的类型并根据需要进行膨胀/填充。您无需担心隐藏 UI 的不同部分来改变外观。适配器将确保只为您提供正确类型的回收视图。

有关使用视图类型的详细说明,请查看这篇文章

于 2014-11-12T14:35:21.193 回答