Android学习 之 有关问题&解答 ScrollView中嵌套ListView时显示不全的简便解决方案
Android学习 之 问题&解答 ScrollView中嵌套ListView时显示不全的简便解决方案
应该是你没设置对,你可以把问题描述的清楚些吗 呵呵
雷打不动的 那肯定是代码问题了 建议你好好检查一下
空指针错误很好查的 肯定是哪个对象为null 请仔细检查一遍
我也遇到 我的解决办法是将 listview的item的布局从relativelayout 改成linearlayout 不过我也不知道原理
参考自:http://stackoverflow.com/questions/3495890/how-can-i-put-a-listview-into-a-scrollview-without-it-collapsing/3495908#3495908
利用下面这个Utility 类的静态方法setListViewHeightBasedOnChildren()即可实现:
在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChilren(listview)就Okay 了。 public class Utility { public static void setListViewHeightBasedOnChildren(ListView listView) { //获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); //计算子项View 的宽高 totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度 } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); //listView.getDividerHeight()获取子项间分隔符占用的高度 //params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); } }
其实原理就是动态的改变ListView控件的高度。
1 楼
androidHome
2011-10-19
兄台请问listView本身需要设置哪些属性?我也遇到和你同样的问题,引用上面这个工具类设置高度以后发现并没有起到什么效果,不知道是不是我代码里面还缺些什么设置,多谢多谢!
2 楼
androidHome
2011-10-19
哦,补充一下,我这没有给ListView写xml布局文件,只是给其中的listview item写了xml布局文件。
3 楼
ldci3gandroid
2011-10-21
androidHome 写道
兄台请问listView本身需要设置哪些属性?我也遇到和你同样的问题,引用上面这个工具类设置高度以后发现并没有起到什么效果,不知道是不是我代码里面还缺些什么设置,多谢多谢!
应该是你没设置对,你可以把问题描述的清楚些吗 呵呵
4 楼
yunlike1986
2011-10-27
我调用这个方法测量的ListView每一项的高度都是58,雷打不动,不知道是什么原因导致的
5 楼
zx1326687
2011-11-17
很奇怪,我一直在listItem.measure(0, 0); //计算子项View 的宽高 这里出错,都是报空指针异常,这是什么问题?!
6 楼
ldci3gandroid
2011-11-29
yunlike1986 写道
我调用这个方法测量的ListView每一项的高度都是58,雷打不动,不知道是什么原因导致的
雷打不动的 那肯定是代码问题了 建议你好好检查一下
7 楼
ldci3gandroid
2011-11-29
zx1326687 写道
很奇怪,我一直在listItem.measure(0, 0); //计算子项View 的宽高 这里出错,都是报空指针异常,这是什么问题?!
空指针错误很好查的 肯定是哪个对象为null 请仔细检查一遍
8 楼
learner576539763
2012-03-06
真的是空指针。。。。。 打上log 显示所需的对象都得到了 但就是提示listItem.measure(0, 0);处有空 楼主 能给指点下吗
9 楼
yahier
2012-04-05
learner576539763 写道
真的是空指针。。。。。 打上log 显示所需的对象都得到了 但就是提示listItem.measure(0, 0);处有空 楼主 能给指点下吗
我也遇到 我的解决办法是将 listview的item的布局从relativelayout 改成linearlayout 不过我也不知道原理