这是我面临的问题。我正在开发一个自定义列表视图,其中单个列表视图项由多个文本和图像视图组成。但是根据项目属性,它有时需要有4个TextViews,有时是1个,有时是6个....这个数字是动态的,我无法弄清楚如何开发出适合的视图持有者模式。
我无法通过创建一些TextView并隐藏它们并在必要时显示来解决问题,因为我不知道每个项目中有多少是必需的。
并且每次在getView中动态充气并添加到布局至少可以说是灾难性的:(
在持有者中拥有一个视图数组列表,然后解决这个问题,这是一个可行的解决方案吗?
答案 0 :(得分:0)
我建议使用适配器视图类型:getItemViewType() and getViewTypeCount() 视图类型的数量取决于表示单个列表项看起来的所有变化方式所需的排列数。
因此,如果有4种不同的UI外观,那么您将拥有4种不同的视图类型。然后,您将拥有一个表示每种类型的ViewHolder。然后在getView()
中,您只需检测位置所代表的类型,并根据需要进行膨胀/填充。您无需担心隐藏UI的不同部分以更改外观。适配器将确保只为您提供正确类型的回收视图。
有关使用视图类型的详细说明,请查看此post。