根据item的高度以及长度设置listview的高度,
2016-06-06 13:37
387 查看
/*这个方法是写在适配器里面的,当需要使用的时候必须在setadapter以后进行调用*/ public static void setListViewHeightBasedOnChildren(ListView listView) { //获取ListView对应的适配器 adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目,条目数 View listItem = listAdapter.getView(i, null, listView); //计算子项View 的宽高 listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight()+listView.getDividerHeight()/2; //统计所有子项+dividerheight的总高度 } ViewGroup.LayoutParams params = listView.getLayoutParams(); //listView.getDividerHeight()获取子项间分隔符占用的高度 //params.height最后得到整个ListView完整显示需要的高度 params.height = totalHeight + (listView.getDividerHeight() * (listAdapt 4000 er.getCount() - 1)); listView.setLayoutParams(params); }
使用此方法的需要在setAdapter以后进行调用,
建议在拿到数据后先调用setData后在进行调用
public void setData(List<E> datalist) { this.datalist = datalist; }
相关文章推荐
- LCP164 LeetCode 164. Maximum Gap
- Windows下C++多线程同步与互斥简单运用(转)
- C#三层ATM-5.登陆功能设计
- 老版本JDK下载
- eclipse打不开,报错an error has occurred.see the log file解决办法
- C语言 -- 返回局部变量
- java创建文件和目录
- linux下的Mongodb安装和使用python(linux自带)连接mongo
- iOS开发多线程篇—GCD介绍
- C#三层ATM-4.ATM界面设计
- Mybatis开发总结
- Android手机适配,手机尺寸、px、dpi、dp、sp详解
- Eclipse智能提示及快捷键
- 边做边学Python Flask Web开发(3)-- Flask Hello World!
- windows7 启动过程
- mysql和oracle的不同
- 虚拟化技术性能总结:Zones, KVM, Xen
- iOS提交AppStore后申请加急审核(转)
- C#三层ATM-3.编写数据库访问类
- 洗牌(1)