设置ListView的高度(重算组件子项)

来源:互联网 发布:mac samba客户端 编辑:程序博客网 时间:2024/06/08 04:29
很多时候我们所见的ListView的子项数目并不是一定的,比如说在ListView1中嵌套一个ListView2,而此时每一个ListView2中显示的数据项数是不固定的,要完全显示每一个ListView2中的所有数据项,就需要对每一个ListView2的高度重新设置
    private 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);            // 计算子项View 的宽高            listItem.measure(0, 0);            // 统计所有子项的总高度            totalHeight += listItem.getMeasuredHeight();        }        ViewGroup.LayoutParams params = listView.getLayoutParams();        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));        listView.setLayoutParams(params);    }


阅读全文
0 0
原创粉丝点击