1、该方法是在之前的基础上加入了更为精确的计算,加入了pandding的计算。
2、静态方法如下
/**
* 重新计算listView的高度.
*
*/
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
if (listItem != null) {
listItem.measure(0, 0);
}
totalHeight += (listItem.getMeasuredHeight());
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
if (params != null) {
params.height = totalHeight+listView.getPaddingTop()+listView.getPaddingBottom()+listView.getDividerHeight() * (listAdapter.getCount() - 1);
}
((MarginLayoutParams) params).setMargins(0, 0, 0, 0);
listView.setLayoutParams(params);
}
3、注意要在setAdapter方法后面调用用。
Android开发交流群 QQ群号223919243 (未满)