Android中 ScrollView(ListView)中嵌套ListView时显示不全的简便解决方案
16lz
2021-12-04
Android中 ScrollView(ListView)中嵌套ListView时显示不全的简便解决方案
分类: Android UI Android开发 2012-05-26 18:12 884人阅读 评论(0) 收藏 举报 listview android null class利用下面这个Utility 类的静态方法setListViewHeightBasedOnChildren()即可实现:
在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChilren(listview)就Okay 了。
[java] view plain copy print ?- publicclassUtility{
- publicstaticvoidsetListViewHeightBasedOnChildren(ListViewlistView){
- //获取ListView对应的Adapter
- ListAdapterlistAdapter=listView.getAdapter();
- if(listAdapter==null){
- //pre-condition
- return;
- }
- inttotalHeight=0;
- for(inti=0,len=listAdapter.getCount();i<len;i++){//listAdapter.getCount()返回数据项的数目
- ViewlistItem=listAdapter.getView(i,null,listView);
- listItem.measure(0,0);//计算子项View的宽高
- totalHeight+=listItem.getMeasuredHeight();//统计所有子项的总高度
- }
- ViewGroup.LayoutParamsparams=listView.getLayoutParams();
- params.height=totalHeight+(listView.getDividerHeight()*(listAdapter.getCount()-1));
- //listView.getDividerHeight()获取子项间分隔符占用的高度
- //params.height最后得到整个ListView完整显示需要的高度
- listView.setLayoutParams(params);
- }
- }
public class Utility {public static void setListViewHeightBasedOnChildren(ListView listView) {//获取ListView对应的AdapterListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) {// pre-conditionreturn;}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控件的高度。
版权声明:本文为博主原创文章,未经博主允许不得转载。
更多相关文章
- Android(安卓)设备+APP+号码信息
- Android设备硬件序列号(SN、串号)分析
- Android多媒体学习三:实现自己的Camera
- 【Android】如何让跑马灯跑起来-控件请求焦点
- Android根据文件路径使用File类获取文件相关信息
- android获取GPS位置信息
- android 中的几种目录
- Android中屏幕相关的操作
- Android获取经纬度