Android的listview需要动态的设定ListView的高度满足不同应用的需求。下面就是封装好的动态设定listview的高度的方法代码块。
/**
*
* TODO set listviews height
*
* @param listView
* @param listAdapter
*/
public void setListViewHeightBasedOnChildren(ListView listView,
Adapter 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));
((MarginLayoutParams) params).setMargins(10, 10, 10, 10);
listView.setLayoutParams(params);
}
方法代码块的作用就是动态的设定一个listview的高度。现在网上很多发布的方法代码块都是不全的。我也搞不清楚,这里我就把这个代码块贴出来,免得大家在开发的过程中走弯路。
注意:利用这个方法的时候我们的item的布局选择很重要。
如果有什么不懂的问题可以给我留言。本人的博客只给本人进行学习和笔记用,如果有什么问题,勿喷!