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

  • 相关阅读:
    tab点击切换
    下拉收起
    倒计时
    边框三角形
    jQuery Easing 使用方法及其图解
    网址收藏
    Java遍历Map对象的四种方式
    idea初使用之自动编译
    Mysql 存储引擎中InnoDB与Myisam的主要区别
    spring-boot-devtools在Idea中热部署方法
  • 原文地址:https://www.cnblogs.com/wangjun8868/p/3290929.html
Copyright © 2011-2022 走看看