1

我这里有一个奇怪的情况。

有一个带有自定义适配器的列表视图。该视图有几种不同的项目类型,它们在getViewItemType. 在几乎所有设备和支持的操作系统上getView,适配器中的方法都被调用,没有任何奇怪的行为。

我知道getView可以多次调用,这不是问题。然而,在 Nexus 5 和 Nexus 6 上,getView 会为相同的项目类型调用两次,并通过convertView.null

结果是我们最终为列表中的同一行创建了两个视图。似乎一个实际上会附加或添加到列表视图中,而另一个则不会。

任何可能导致此问题的建议或提示?

4

1 回答 1

0

你怎么知道为同一个项目打了两次电话?

I ran the app with a debugger. It stopped on my breakpoint in getView multiple times (as expected) but two of the stops for the item passed null convertViews. It is a very small list, only four rows, each a different item type. They all show on the screen easily

您应该检查positiongetView()确保是否调用了两次。

我想不是因为每个项目视图(convertView)的第一次总是为空,那么您需要inflate具有项目视图布局的视图并将其返回。虽然下次显示相同的视图(即使对于不同的项目),但convertView不会为空,但您仍然需要根据项目位置设置具有值的视图。

希望你得到!

于 2015-04-09T14:34:17.520 回答