标题: Android动态设置ListView高度 [打印本页]

作者: jialinx    时间: 2015-9-14 13:21
标题: Android动态设置ListView高度
        private 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))
                                + 100;
                // listView.getDividerHeight()获取子项间分隔符占用的高度
                // params.height最后得到整个ListView完整显示需要的高度
                listView.setLayoutParams(params);
        }







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1