您的位置:首页 > 其它

ListView和GridView根据item数量自适应高度的工具类封装

2017-08-11 11:12 567 查看
很多时候我们使用ListView和GridView由于item的高度不确定,是动态变化的,

这时候就需要自适应高度,可以考虑新建工具类放入下边的静态方法,使用的时候用类名调用方法传入GridView或者listview对象即可实现效果

/**
* ListView自适应高度的方法
*
* @param listView
*/
public static void setListViewHeightBasedOnChild(ListView listView) {
// 获取ListView对应的Adapter
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);

listItem.measure(0, 0); // 计算子项View 的宽高

totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度

}

ViewGroup.LayoutParams params = listView.getLayoutParams();

params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));

// listView.getDividerHeight()获取子项间分隔符占用的高度

// params.height最后得到整个ListView完整显示需要的高度

listView.setLayoutParams(params);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: