最近项目需要,需要在scrollview中嵌套listview,但是两个可以滚动的控件嵌套会有问题;网上搜了个方法,可以使用,如下:
/**
* 设置listview高度
* @param listView
*/
public void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
int itemHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
itemHeight = listItem.getMeasuredHeight();
totalHeight += itemHeight;
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() – 1));
params.height += itemHeight;
listView.setLayoutParams(params);
}
今天采用此方法莫名报空指针异常,Google了一下,由于listview的item布局采用的RelativeLayout导致,改为LinearLayout布局方式,一切正常。具体什么原因造成的,知道的可以说下哈。。。
原创内容转载请保留出处GEEK笔记(https://www.geekapp.cn/)。