public void setListViewHeightBasedOnChildren(ListView listView) {
if (listView.getAdapter() != null) {
int totalHeight = 0;
for (int i = 0; i < listView.getAdapter().getCount(); i++) {
View listItem = listView.getAdapter().getView(i, null,
listView);
listItem.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView
.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listView.getAdapter()
.getCount()-1 ));
listView.setLayoutParams(params);
}
}
if (listView.getAdapter() != null) {
int totalHeight = 0;
for (int i = 0; i < listView.getAdapter().getCount(); i++) {
View listItem = listView.getAdapter().getView(i, null,
listView);
listItem.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView
.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listView.getAdapter()
.getCount()-1 ));
listView.setLayoutParams(params);
}
}