有时候需要在listview 显示之前获取内容的高度。
可以用 item.measure(0,0); 方式计算大小再获取。
注:
item.measure(); 高度的参数是wrap_content的情况下和measure(0,0)计算的高度是一样的。
所以简化一下,不去配 heightMeasureSpec的值了,直接用(0,0)参数。
如果要配的话,可以用 MeasureSpec.makeMeasureSpec(parentSize, MeasureSpec.AT_MOST),但是显然这样比较麻烦。
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);//取wrap_content的大小的高
totalHeight += listItem.getMeasuredHeight();
}
本文介绍了一种在ListView加载前计算其总高度的方法。通过遍历所有item并使用measure(0,0)来获取每个item的测量高度,从而计算出ListView的总高度。
723

被折叠的 条评论
为什么被折叠?



