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

  • 相关阅读:
    C#及时释放代码
    软件本质是什么?
    WCF学习
    android 更新ui
    ijkplayer视频播放
    androidstudio集成ijkplayer教程
    IJKPlayer问题集锦之不定时更新
    github上十二款最著名的Android播放器开源项目
    让ubuntu支持GBK编码AAAAA
    adb命令--之查看进程及Kill进程
  • 原文地址:https://www.cnblogs.com/wangjun8868/p/3290929.html
Copyright © 2011-2022 走看看