http://www.cnblogs.com/zmc/p/4013053.html 这篇博客写的非常不错,在涉及到控件嵌套方面我们肯定要自定义控件,通常做法是重写一个ListView,然后重新计算ListView的高度,然后在Activity中使用自定义的LIstView,并且给List设置完适配器之后,一定要调用自定义类中给ListView设置高度的方法,位置很关键,千万要细心。
给ListView设置高度的方法如下:
public void setListHeight(ListView mListView){
//获取ListView的adapter
ListAdapter adapter=mListView.getAdapter();
if(adapter==null){
return;
}
//子条目的总高度
int totalHeight=0;
for(int i=0;i<adapter.getCount;i++){
//逐个获取每个Item的
View itemView=adater.getItem(i,null,mListView);
itemView.measure(0,0);
totalHeight+=itemView.getMeasureHeight();
}
//接下来是获取每个ItemVIew在竖直方向的间隔
ViewGroup.LayoutParams params=mListView.getLayoutParams();
params.height=totalHeight+(mListView.getDividerHeight())*(adapter.getCount()-1);
mListView.setLayoutParams(params);
}