Android 动态获取ListView的高度_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android 动态获取ListView的高度

Android 动态获取ListView的高度

 2013/8/30 12:09:18  wangjun8868  博客园  我要评论(1)
  • 摘要:publicstaticvoidsetListViewHeightBasedOnChildren(ListViewlistView){ListAdapterlistAdapter=listView.getAdapter();if(listAdapter==null){//pre-conditionreturn;}inttotalHeight=0;for(inti=0;i<listAdapter.getCount();i++){ViewlistItem=listAdapter
  • 标签:android view list 动态获取
class="brush:java;gutter:false;">public static void setListViewHeightBasedOnChildren(ListView listView) 
{ 
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) 
{ 
// pre-condition 
return; 
} 
int totalHeight = 0; 
for (int i = 0; i < listAdapter.getCount(); i++)
{ 
View listItem = listAdapter.getView(i, null, listView); 
// listItem.measure(0, 0); 
listItem.measure( MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
totalHeight += listItem.getMeasuredHeight(); 
}
ViewGroup.LayoutParams params = listView.getLayoutParams(); 
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
listView.setLayoutParams(params); 
} 

  


使用这个代码来获取listview的高度,需要注意一下几个问题:
1、listview的item的根布局一定要是LinearLayout;
2、调用这个方法需要在适配器数据加载更新之后;
代码如下:
mAdapter.notifyDataSetChanged();
Function.getTotalHeightofListView(mListView);
3、获取item的高度也可以用注释掉的代码,效果一样的

    网友 2013/10/9 9:09:10 发表

    垃圾,Function.getTotalHeightofListView(mListView);这个那来的。你妈妈的,不会就别乱转乱写东西

发表评论
用户名: 匿名