ListView 根据item手动设置高度和自适应宽度
有效的解决ListView宽度设置为wrap_content还是占满整行的问题,解决listview外设置了ScrollView无滚动效果而ListView的Item被隐藏的问题,代码如下
public static void setListViewBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; int maxWidth = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); int width = listItem.getMeasuredWidth(); if(width>maxWidth)maxWidth = width; } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); params.width = maxWidth; listView.setLayoutParams(params); }
---------------------------------------
贵有恒,何必三更起五更眠。最无益,只怕一日曝十日寒。--------------------------------------------