安卓listview 的.addFooterView(View foot)

来源:互联网 发布:向多个gsm模块发数据 编辑:程序博客网 时间:2024/05/22 12:40
今天项目需求做一个scrollview 分为两部分,每个部分都是动态添加的其中下部分是一个listview,所以实现计算listview的高度关于listview计算高度网上很多方法,但是listview有一个foot,总是得不到加了foot的高度,

 int n = listview.getAdapter().getCount();
  foot.measure(0, 0);
  int heightsum = 0;
  for (int i = 0; i < n-1 ; i++) {
   View listItem = adp.getView(i, null, listview);
   listItem.measure(0, 0);
   heightsum += listItem.getMeasuredHeight();
  }
  

可见这样计算不到foot高度,开始一直以为foot没加上去,纠结好久,最后才知道foot加上去了只是没有显示出来,最后

footer = LayoutInflater.from(Tran_main.this).inflate(
    R.layout.tran_footer, null); int n = listview.getAdapter().getCount();
  foot.measure(0, 0);
  int heightsum = 0;
  for (int i = 0; i < n-1 ; i++) {
   View listItem = adp.getView(i, null, listview);
   listItem.measure(0, 0);
   heightsum += listItem.getMeasuredHeight();
  }
   addcarview.addView(v, new LayoutParams(LayoutParams.FILL_PARENT,
    heightsum+foot.getMeasuredHeight()));

这样完全显示出来啦还一种方法干脆把foot直接到listview的item添加,在listview适配器里getview()加一个判断,,浪费我一个多小时纠结这问题补充下listview的item必须是LinearLayout,据说只有这个才重写了measure(0,0)方法遇到问题解决了还是记一下,今后查看回忆更深刻,不要把知识都放在百度里