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);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容