直接上代码.
private void setListViewHeight(ListView fragLv) {
//获得ListView的适配器ListAdapter adapter = fragLv.getAdapter();
if (adapter == null) return;
int height = 0;
for (int i = 0; i < adapter.getCount(); i++) {
//拿到Item
View listViewItem = adapter.getView(i, null, fragLv);
//计算宽高
listViewItem.measure(0, 0);
//叠加没一个子项的宽高
height += listViewItem.getMeasuredHeight();
}
//设置高度
ViewGroup.LayoutParams params = fragLv.getLayoutParams();
//Item的高度乘以分割线的高度
params.height = height + ((fragLv.getDividerHeight()) * (adapter.getCount() - 1));
fragLv.setLayoutParams(params);
}