【Android基础学习】动态设置 listView的高度,解决scrollView中嵌套listview时显示不全的问题

来源:互联网 发布:阿里云mysql空间不足 编辑:程序博客网 时间:2024/05/29 11:43

ListView数据较少时使用,数据较多时不建议使用

/*

* 动态设置ListView组建的高度

* */
public void setListViewHeightBasedOnChildren(ListView listView) {
     
     ListAdapter listAdapter = listView.getAdapter();
     
     if (listAdapter == null) {
     
      return;
     
     }
     
     int totalHeight = 0;
     
     for (int i = 0; i < listAdapter.getCount(); i++) {    //listAdapter.getCount()返回数据项的数目
     
      View listItem = listAdapter.getView(i, null, listView);
     
      listItem.measure(0, 0);  //计算子项View的宽度
     
      totalHeight += listItem.getMeasuredHeight();  //统计所有子项的总高度
     
     }
     
     ViewGroup.LayoutParams params = listView.getLayoutParams();
     
     params.height = totalHeight
     
       + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
     
     // params.height += 5;// if without this statement,the listview will be
     
     // a
     
     // little short
     
     // listView.getDividerHeight()获取子项间分隔符占用的高度
     
     // params.height最后得到整个ListView完整显示需要的高度
     
     listView.setLayoutParams(params);
     
   }
0 0
原创粉丝点击