有时候需要在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();
}