zoukankan      html  css  js  c++  java
  • Android 动态获取ListView的高度

    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的高度也可以用注释掉的代码,效果一样的

  • 相关阅读:
    1036 Boys vs Girls (25 分)
    1028 人口普查 (20 分)
    1004 成绩排名 (20 分)
    4.ServletContext接口
    5 .索引
    7.jQuery 的 基本绑定事件操作
    6.jQuery 操作元素的样式css
    1.servlet简介 + 我的第一个servlet程序
    5.jQuery 的 Class操作
    4.jQuery 操作文本内容
  • 原文地址:https://www.cnblogs.com/wangjun8868/p/3290929.html
Copyright © 2011-2022 走看看