展会信息港展会大全

android在ScrollView中嵌套ListView时,ListView只显示一行的问题
来源:互联网   发布日期:2015-12-04 16:39:01   浏览:2062次  

导读:经过验证,简单有效,在listview setAdapter()之后调用 Utility setListViewHeightBasedOnChildren(listview)就Ok了。public class Utility {public static void setListViewHeightBasedOnChildren(ListV ...

经过验证,简单有效,在listview.setAdapter()之后调用 Utility.setListViewHeightBasedOnChildren(listview)就Ok了。

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);

}

}

赞助本站

人工智能实验室
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港