publicclassUtility {

publicvoidsetListViewHeightBasedOnChildren(ListView listView) {

//获取ListView对应的Adapter

ListAdapter listAdapter = listView.getAdapter();

if(listAdapter ==null) {

return;

}

inttotalHeight = 0;

for(inti = 0, len = listAdapter.getCount(); i < len; 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));

//listView.getDividerHeight()获取子项间分隔符占用的高度

//params.height最后得到整个ListView完整显示需要的高度

listView.setLayoutParams(params);

}

}

更多相关文章

  1. Android 软键盘的监听(监听高度,是否显示)
  2. [Android]Android字体高度的研究
  3. android 完美获取状态栏高度
  4. Android动态设置控件高度
  5. android 获取实际view 宽度高度
  6. Android中动态设置布局高度一致
  7. android状态栏 高度
  8. Android中当item数量超过一定大小RecyclerView高度固定

随机推荐

  1. Android 单元测试实战(1)—— 调研与选型
  2. 你知道吗:Android为何比iOS和WP慢?
  3. 每天学习一个Android中的常用框架——1.L
  4. Android UI常用实例 如何实现欢迎界面(Spl
  5. 反编译apk文件
  6. Android实现自动更新功能
  7. rt2870 usb wifi在mx53 android平台上的
  8. Android(安卓)OpenGL入门示例:绘制三角形
  9. 我是如何自学成为程序员的
  10. Android中的dex分包