//此方法在setAdapter之前调用
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
该方法用于在设置Adapter之前调整ListView的高度,使其基于子视图的测量高度自动适配。首先获取Adapter,然后遍历每个子视图进行测量,累加高度。最后,更新ListView的LayoutParams,包括子视图总高度加上分隔符高度,从而实现ListView的高度自适应。
2062

被折叠的 条评论
为什么被折叠?



