由于你重写了listview或gridview中的onmeasure()方法,导致它计算不了view的高度,match_parent解决不了这个问题。
此时如果打出log发现多余的调用全部是position=0;这时我们可以在position=0时什么都不做来减少内存的开支。
于是在getview方法前加上控制
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (position == 0) {
mCount++;
} else {
mCount = 0;
}
if (mCount > 1) {
return convertView;
}
..........(你的代码)
return convertView;