標題: Android動態(tài)設(shè)置ListView高度 [打印本頁]

作者: jialinx    時間: 2015-9-14 13:21
標題: Android動態(tài)設(shè)置ListView高度
        private void setListViewHeightBasedOnChildren(ListView listView) {

                // 獲取ListView對應(yīng)的Adapter
                ListAdapter listAdapter = listView.getAdapter();
                if (listAdapter == null) {
                        return;
                }

                int totalHeight = 0;
                for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
                        // listAdapter.getCount()返回數(shù)據(jù)項的數(shù)目
                        View listItem = listAdapter.getView(i, null, listView);
                        // 計算子項View 的寬高
                        listItem.measure(0, 0);
                        // 統(tǒng)計所有子項的總高度
                        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.torrancerestoration.com/bbs/) Powered by Discuz! X3.1