/** * 解决ScrollView中嵌套ListView,ListView只显示一行的问题 * * @param listView */public void setListViewHeightBaSEOnChildren(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.getDivderHeight()获取子项间分隔符占用的高度 listView.setLayoutParams(params);}
新闻热点
疑难解答