ListView随内容自适应高度

public void setListViewHeightBasedOnChildren(ListView listView) {

ListAdapter listAdapter = listView.getAdapter();

if(listAdapter ==null) {

return;

}

int tempHeight =0;

for(int i =0;i < listAdapter.getCount();i++) {

View listItem = listAdapter.getView(i, null,listView);

listItem.measure(0,0);

tempHeight += listItem.getMeasuredHeight();

}

ViewGroup.LayoutParams params = listView.getLayoutParams();

int totalHeight = tempHeight + (listView.getDividerHeight() * (listAdapter.getCount() -1));

//获取屏幕的高度

int screenHeight = CommUtils.getScreenHeight(this);

//如果ListView高度超过了屏幕的三分之一,则将屏幕的三分之一设置为它的高度

if(totalHeight > screenHeight /3) {

totalHeight = screenHeight /3;

}

params.height= totalHeight;

listView.setLayoutParams(params);

}

你可能感兴趣的:(ListView随内容自适应高度)