ListView中嵌套ListView

2017-09-20  本文已影响0人  诠_释

/**

* 设置Listview的高度

*/

public void setListViewHeight(ListView listView) {

ListAdapter listAdapter = listView.getAdapter();

if(listAdapter ==null) {

return;

}

inttotalHeight =0;

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

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

listItem.measure(0,0);

totalHeight += listItem.getMeasuredHeight();

}

ViewGroup.LayoutParamsparams = listView.getLayoutParams();

params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() -1));

listView.setLayoutParams(params);

}

这个方法设置的item的Layout必须是带有onMeasure()方法的控件,否则在计算的时候会报错,建议使用LinearLayout。

第二种(自定义ListView)

@OverridepublicvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){intexpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >>2,

MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);

}

上一篇 下一篇

猜你喜欢

热点阅读