ScrollView嵌套ListView方法

来源:互联网 发布:淘宝退款和退货区别 编辑:程序博客网 时间:2024/05/23 14:21
public void SetListViewHeightBasedOnChildren(ListView listView) {    // 获取ListView对应的Adapter    ListAdapter listAdapter = listView.getAdapter();    if (listAdapter == null) {        return;    }    int totalHeight = 0;    for (int i = 0, len = listAdapter.getCount(); i < len; i++) {        // listAdapter.getCount()返回数据项的数目        View listItem = listAdapter.getView(i, null, listView);        // 计算子项View 的宽高        listItem.measure(0, 0);        // 统计所有子项的总高度        totalHeight += listItem.getMeasuredHeight();    }    ViewGroup.LayoutParams params = listView.getLayoutParams();    params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));    // listView.getDividerHeight()获取子项间分隔符占用的高度    // params.height最后得到整个ListView完整显示需要的高度    listView.setLayoutParams(params);    //如果不行,去布局的页面在ScrollView下加入LinearLayout}//直接调用方法即可