适配器的getView()在每个位置之前要求位置0两次.为什么?

Ste*_*man 6 android android-listview

我阅读了getView()上的所有其他帖子,但没有找到任何解决方案.我有一个带有SimpleCursorAdapter的GridView.我记录(位置); 在getView()中,我看到这样的模式:

0,0,1,0,0,2,0,0,3,0,0,4,0,0,5等.这意味着我必须构建3个视图,因为它为每个显示的新视图滚动这是波涛汹涌和迟滞.为什么这样做?我没有任何明显的设置我的gridview包装内容或其他任何奇怪的东西.我的代码没什么奇怪的.可能有一个因素是每个项目视图可能具有不同的高度,具体取决于我正在显示的文本的长度.

我目前正在调试4.2.2 Galaxy Nexus.

laa*_*lto 1

在 gridview 度量/布局过程中请求索引 0。

该问题没有详细信息,但以下内容可以解释您所看到的模式:

  • GridView处于需要两次测量/布局传递的布局中(例如LinearLayout,具有权重、RelativeLayout具有布局依赖性规则)。这解释了两个位置 0。

  • 每个都会getView()导致父级重新布局。这解释了每个位置后面的位置 0。